【发布时间】:2021-01-15 20:42:11
【问题描述】:
当我检查滑动切换时,它应该可以按预期工作。但是当我尝试取消选中它时,会出现一个确认窗口,询问您是否确定。当我在该确认窗口中单击取消时,切换仍会更改为未选中,这不应该发生。它应该保持相同的状态。
这是我的 Html 和 TS 代码
// html
<mat-slide-toggle
(change)="change($event)" [checked]="isChecked()" >
To-pay
</mat-slide-toggle>
TS 代码:
// ts
change(e) {
if(this.checked) {
if(confirm("Are you sure")) {
console.log("toggle")
}
else {
e.stopPropagation();
console.log("toggle should not change if I click the cancel button")
}
}
}
当尝试取消选中切换按钮时出现确认窗口并单击那里的取消选项时,切换不会发生任何事情。 stopPropagation() 也不起作用。
Edit1 :我尝试在 else 语句中执行 return false。没用。甚至试图改变e.checked = false。它只是改变了事件对象的值,但并没有阻止切换滑动
【问题讨论】:
-
用“return false”代替 stopPropagation 怎么样?
-
我试过了。没用
-
当您在 uncheck 处传入此方法时,“this.checked”是否为真?也许问题是你必须在第一个 if 而不是第二个上“else”......
-
当我尝试取消选中时,this.checked 是真的。如果 this.checked 为 false ,则不应输入显示确认窗口的代码
-
你使用什么版本的 Angular ?
标签: angular angular-material angular5 angular-material2