我这里有一个开关:
<ion-toggle (ionChange)="notify(value)"></ion-toggle>
当我点击这个时,我想调用方法notify,通过参数传递切换值。如何获取切换值?
谢谢您!
最佳答案
正如您可以在Ionic2 Docs - Toggle中看到的,更好的方法是使用ngmodel将切换绑定到组件中的属性。
组件代码:
public isToggled: boolean;
// ...
constructor(...) {
this.isToggled = false;
}
public notify() {
console.log("Toggled: "+ this.isToggled);
}
观点:
<ion-toggle [(ngModel)]="isToggled" (ionChange)="notify()"></ion-toggle>
这样,您就不需要发送值,因为它已经是组件的属性,并且您始终可以使用
this.isToggled
获取值。更新
就像他在评论中提到的那样:
当IonChange直接绑定到
ngModel
时,请非常小心。当绑定到ngModel
的值更改时,notify方法将被调用,无论是从视图中通过某人单击切换,还是在组件中通过代码(例如,当您执行一个新的get调用时)。我最近遇到了一个问题,点击切换触发了一个PATCH
,这意味着当绑定到切换的数据更改时,所有其他客户机都会自动触发一个PATCH
。我们使用:
<ion-toggle [ngModel]="isToggled" (ngModelChange)="notifyAndUpdateIsToggled()"></ion-toggle>
绕过这个