如何使用Angular2中的按钮触发ngModelChange

时间:2017-07-05 20:45:25

标签: forms angular checkbox

我使用* 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功能。但如果我点击全选按钮,则会选中复选框。但是没有调用addID函数。

当我使用全选按钮时,如何触发ngModelChange功能,以便我获得所有选择的ID

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

  1. 我使用selectAll()函数自动加载所有id(这个我从源加载我的表得到的id)到一个数组。和 我将isChecked的值设置为true或false。