我有一个复选框绑定到观察模型上的可观察.我有一个要求,基本上弹出一个“你确定吗?如果用户将其从true更改为false,则确认提示.我有一个可怕的时间找出最好的地方,使改变“可取消”. . .
1)点击事件的jQuery处理程序
2)viewmodel内部订阅“beforeChange”
3)viewmodel内部订阅(正常)
无论如何,我非常希望有机会彻底取消变更,而不是对变更作出反应,如果需要,可能会将其恢复到以前的价值.
Knockout的订阅活动是否可以让您取消更改?任何见解将不胜感激.谢谢!
解决方法
这是一个使用jQuery的stopImmediatePropagation的简单选项:
http://jsfiddle.net/rniemeyer/cBvXM/
<input type="checkBox" data-bind="click: confirmCheck,checked: myvalue" />
JS:
var viewmodel = { myvalue: ko.observable(false),confirmCheck: function(data,event) { if (!confirm("Are you sure?")) { event.stopImmediatePropagation(); return false; } return true; } };