如何使用Angular 2更改值时调用方法?
<select [(ngModel)]="searchMonster">
<option>36</option>
<option>37</option>
</select>
我尝试使用ng-change但没有成功。
答案 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