【问题标题】:restore the toggle button status in ionic2恢复ionic2中的切换按钮状态
【发布时间】:2017-08-29 18:41:38
【问题描述】:

ionChange 我正在检查一些条件,如果条件设置为假,我想恢复切换按钮的先前位置。这是相关代码

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() 被无限期调用。如何防止这种情况并在其他情况下恢复切换按钮的先前位置?

【问题讨论】:

    标签: ionic2 toggle


    【解决方案1】:

    [()] 语法意味着您正在获取更新当变量更改时发布更新。由于您使用的是(ionChange),因此您可以改用[] 语法,这意味着它只会获取更新(但不会发布)

    <ion-toggle [ngModel]="item.status" (ionChange)="changeStatus($event, item);">
    

    由于切换按钮改变了它的状态,为了让它“变回”,你需要来回切换值。您可以通过设置该值来解决此问题,如果失败,则通过添加 setTimeout“在未来”触发更改。

    public changeStatus(event: boolean, item: Item) {
      item.status = event;
      if (allGood) {
        // do something
      }
      else {
        // revert to old value
        setTimeout(() => { item.status = !event; });
      }
    }
    

    【讨论】:

    • 我按照你的建议尝试了,但我无法将切换开关恢复到之前的位置@Patrick
    • @Lisa 更新了我的答案。
    猜你喜欢
    • 2017-12-07
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多