基于给定here的示例,我编写了一个指令,用于在单击按钮时在Angular中显示确认对话框。问题是,即使用户单击确认对话框上的取消按钮,也会触发ng-click操作。
这是指令:
app.directive('ngConfirmClick',function(){
return {
link: function(scope, element, attr) {
var msg = attr.ngConfirmClick;
var clickAction = attr.ngClick;
attr.ngClick = "";
element.bind('click', function(event) {
if(window.confirm(msg)){
scope.$eval(clickAction);
}
});
}
}
});
这是我的index.html中有ng-confirm-click指令的部分:
<input class="delete" type="button" value="" ng-click="delete(item._id)"
ng-confirm-click="Are you sure you want to delete?">
我尝试为ng-confirm-click指令设置优先级-1,这也没有帮助。 当我在firebug上调试代码时,我发现window.confirm在用户点击Cancel时返回false,所以我不确定为什么ng-click(上面的指令代码中的clickAction)正在执行。 如果window.confirm返回false,有没有办法停止传播点击操作? 任何帮助将不胜感激。