ngmodel和input的关系

来源:互联网 发布:淘宝裤子穿2天起皱 编辑:程序博客网 时间:2024/06/05 08:38

先看代码

<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;
}
}
 因为平时写html的时候关于input输入框禁用直接给disabled的属性赋值字符串即可,取消禁用呢,直接在给disabled属性一个空字符串即可

但是呢,在ng2框架中这样是无效的,input始终是被禁用  莫名其妙哈 后来呢 改成布尔值  是有效果的

暂且记录

另外附上ngmodel的几个注意点:

首先[(ngModel)]是双向数据绑定,在input的输入的时候,会影响模板中的值,也就是说在该模块中影响是全局的,凡是是用到该数据的地方,值都会随你输入的改变而改变

然后呢[ngModel]我猜测可能即使个赋值操作吧,他只会给value一个默认值,之后并不会以为输入框值改变而改变 即单向数据绑定,

然后呢 (ngModel)  啥作用都没有,千万别写错了。


原创粉丝点击