恢复在ionic2切换按钮状态
问题描述:
在ionChange
我检查一些条件,如果condtion设置为false我想恢复切换按钮的位置。下面是相关代码恢复在ionic2切换按钮状态
changeStatus(item) {
if(this.mqttservice.response) {
//doing smthg
}
else {
item.status =!item.status;
//bring back the toggle to previous position
}
}
<ion-toggle [(ngModel)]="item.status" (ionChange)="changeStatus(item);" checked="false">
的问题是,因为我改变了状态changeStatus()
无限期地叫。如何防止这种情况并在其他情况下恢复切换按钮上一个位置?
答
[()]
语法表示您正在获取更新和当变量发生变化时发布更新。由于您使用(ionChange)
可以使用[]
语法代替,这意味着它只能获取更新(但不会张贴)
<ion-toggle [ngModel]="item.status" (ionChange)="changeStatus($event, item);">
由于切换按钮改变其状态,以便为“改回“你需要来回切换值。您可以通过设置该值来解决此问题,如果失败,则可以通过添加setTimeout
“将来”触发更改。
public changeStatus(newValue: boolean, item: Item) {
item.status = event;
if (allGood) {
// do something
}
else {
// revert to old value
setTimeout(() => { item.status = !event; }, 0);
}
}
我试着按照你的建议,但我不能带回切换到先前的位置@Patrick – Lisa
@Lisa更新了我的答案。 – Patrick