如何在 Angular 2 中使用按钮触发 ngModelChange

问题描述 投票:0回答:2

我使用

*ngFor
来填充我的表格。

<tr *ngFor= "stu in students">
<td>{{stu.name}}</td>
<td><input type="checkbox" ngModel="isChecked" 
(ngModelChange)="addID(stu.id)</td>
</tr>

然后我在桌子外面有一个按钮。

<button (click)="selectAllID()">select all</button>

然后我的组件为:

studentID=[];
isChecked=false;

addID(id:number){
this.student.push (id);
//I do other thing with id
}

selectAllID (){
 If (this.isChecked)
     this isChecked = false;
  else this isChecked = true
}

问题是:

如果我选中单个复选框,则会执行

addID()
函数。但是,如果我单击
select all
按钮,复选框就会被选中。但是
addID()
函数没有被调用。

当我使用

ngModelChange
按钮时,如何触发
select all
功能,以便我全部选中
id
s

html angular forms checkbox
2个回答
2
投票

输入控件与

ngModelChange
指令的绑定只有一种方式。但要更新视图,您应该将控件绑定到
ngModel

<input type="checkbox" [ngModel]="isChecked" 
(ngModelChange)="addID(stu.id)">

1
投票

谢谢大家。我终于解决了这个问题。这就是我所做的:

  1. 我使用 selectAll() 函数自动将所有 id(我从加载表的源中获得的 id)加载到数组中。和 我将 isChecked 的值设置为 true 或 false。
© www.soinside.com 2019 - 2024. All rights reserved.