先看代码
<button
type="button" (click)="doSomething()">{{name}}</button>
<div *ngIf="title">
<input
type="text" [(ngModel)]='title' [disabled]='disabled'>
</div>
这是类声明的地方
export
class AppComponent {
title =
"app";
private flag:
boolean =
true;
private disabled:
boolean =
true;
private name: string
= "取消禁用";
doSomething() {
if (this.flag) {
this.disabled
= false;
this.name
= "禁用";
} else {
this.disabled
= true;
this.name
= "取消禁用";
}
this.flag
= !this.flag;
}
}
起初呢 我是这么写的
export
class AppComponent {
title =
"app";
private flag:
boolean =
true;
private disabled:
string =
'disabled';
private name
= "取消禁用";
doSomething() {
if (this.flag) {
this.disabled
= '';
this.name
= "禁用";
} else {
this.disabled
= 'disabled';
this.name
= "取消禁用";
}
this.flag
= !this.flag;
}
}
但是呢,在ng2框架中这样是无效的,input始终是被禁用 莫名其妙哈 后来呢 改成布尔值 是有效果的
暂且记录
另外附上ngmodel的几个注意点:
首先[(ngModel)]是双向数据绑定,在input的输入的时候,会影响模板中的值,也就是说在该模块中影响是全局的,凡是是用到该数据的地方,值都会随你输入的改变而改变
然后呢[ngModel]我猜测可能即使个赋值操作吧,他只会给value一个默认值,之后并不会以为输入框值改变而改变 即单向数据绑定,
然后呢 (ngModel) 啥作用都没有,千万别写错了。