代码之家  ›  专栏  ›  技术社区  ›  JordanBarber

根据用户对javascript“确认”的响应更改材质滑动切换的值

  •  2
  • JordanBarber  · 技术社区  · 8 年前

    我正在实现一个有角度的材质滑动切换。如果用户正在将切换从true切换到false,我想显示一个确认,确保他们愿意这样做。如果他们说取消,我希望将滑动切换设置为true。我做错了什么?

    以下是组件的html:

    <md-slide-toggle checked="checked" (change)="changeEvent($event)">Slide Toggle</md-slide-toggle>
    

    changeEvent(ev) {
        if (ev.checked === false) {
          var x = confirm("Are you sure?")
          if (!x) {
            return ev.checked === false; 
          }
        }
      }
    

    这里有一个plunker演示了到目前为止我所拥有的。。。 http://plnkr.co/edit/WP55vlFQBljgKM0jkf2R?p=preview

    1 回复  |  直到 8 年前
        1
  •  1
  •   Vega Stipe    8 年前

    首先,为滑块设置一个模型并更改名称(“选中”似乎会导致问题)。也使用[]表示 checked ev.checked 价值正在“丢失”,它什么都不做:

    HTML:

    <md-slide-toggle [checked]="myValue" (change)="changeEvent($event)">Slide Toggle</md-slide-toggle>
    

    ... 
    if (ev.checked === false) {
          var x = confirm("Are you sure?")
          if (!x) {
            this.myValue = true; 
          }
    }
    

    Plunker