使用Angular 2更改值时调用方法

时间:2015-12-23 02:08:34

标签: ionic angular

如何使用Angular 2更改值时调用方法?

 <select [(ngModel)]="searchMonster">
     <option>36</option>
     <option>37</option>
 </select>

我尝试使用ng-change但没有成功。

2 个答案:

答案 0 :(得分:7)

使用ngModelChange。检查template syntax docs.

试试这个

<select
  [ngModel]="searchMonster"
  (ngModelChange)="yourMethod($event)">
     <option>36</option>
     <option>37</option>
</select>

另一个替代方案是<input>标记,请尝试<select>

<select #option
  [ngModel]="searchMonster"
  (ngModelChange)="yourMethod(option.value)">
     <option>36</option>
     <option>37</option>
</select>    

答案 1 :(得分:7)

当我们必须在角度中使用双向数据绑定时,基本上我的观察[(ngModel)]被调用。所以通过绑定调用视图和控制器/方法。我们可以使用[(ngModel)]作为[ngModel]和(ngModelChange)进行变更检测,但是在这种情况下,onChange()会根据此答案here为每个选择列表的变化调用两次,但是当你想要在变更中调用一个方法,你可以在这里使用这种方式: -

<select [(ngModel)]="selectedDevice" #device (change)="onChange(device.value)">
    <option *ngFor="#i of devices">{{i}}</option>
</select>

onChange(deviceValue) {
    console.log(deviceValue);
}

我发现这个问题的最佳答案是this