即使在window.confirm在角度确认对话框中返回false之后,也会执行Click事件

时间:2014-07-03 03:20:59

标签: angularjs angularjs-directive angularjs-scope

基于给定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,有没有办法停止传播点击操作? 任何帮助将不胜感激。

0 个答案:

没有答案