为什么在复选框中使用[checked]不能与ngModel一起使用?

时间:2018-12-23 05:27:51

标签: angular

我在复选框中使用ngModel,遇到一种情况,发现first[checked]="true"不兼容。另外,我在[(ngModel)]="select"上调用了一个函数,在该函数中,我将模型设置为select = true,模型发生了变化,但视图未更新。

要解决以上两个问题,我使用了(change)而不是[ngModel]="true",并将[checked]发送到了$event上执行(change)的函数上。

最初:

event.target.checked = true

我的尝试

<input type="checkbox" name="mycheck" [checked]="true" [(ngModel)]="works" (change)="func()">

func() {
    this.works = true;  // this updates the model but not view
}

2 个答案:

答案 0 :(得分:0)

当我们将输入类型检查与[[ngModel)]一起使用时,您唯一需要的就是[[ngModel)]和一个变量。

  <input type="checkbox" [(ngModel)]="myvariable">
  <div *ngIf="myvariable">you are checked</div>

答案 1 :(得分:0)

["Fredrick", 23]

这将对复选框进行双向绑定。因此,您不需要[checked]属性。

或者使用选中的属性代替ngModel,

.html中的

<input [(ngModel)]="works" type="checkbox"/>

在.ts中,

<input [checked]="works" type="checkbox" (change)="func($event)"/>