先看代码
<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) 啥作用都没有,千万别写错了。