在angleJS中拦截点击

前端之家收集整理的这篇文章主要介绍了在angleJS中拦截点击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以编写一个拦截器进行ng点击?
我有一个按钮或链接,导致在后端删除对象。我想通过添加一个属性到按钮/链接来有一个确认对话框(模态)。例如。:
<a href="#" ng-click="deleteIt(id)" confirmation-needed>Delete</a>

这是否可能与AngularJS?有没有更好的办法解决这个问题?

编辑deleteIt方法驻留在不同的控制器中。

谢谢

我已经提出了一个示例指令:

http://plnkr.co/edit/GJwK7ldGa9LY90bMuOfl?p=preview

我通过创建一个指令来实现它:

>具有比ngClick更高的优先级,以便在ngClick之前被调用
>使终端不要调用ngClick。
>听单击事件,然后评估ngClick值,如果消息确定。

作为奖金,您可以传递自己的消息,如:

<a href="#" ng-click="deleteIt(id)" 
    confirmation-needed="Really Delete?"
        >Delete with custom message</a>

代码如下所示:

app.directive('confirmationNeeded',function () {
  return {
    priority: 1,terminal: true,link: function (scope,element,attr) {
      var msg = attr.confirmationNeeded || "Are you sure?";
      var clickAction = attr.ngClick;
      element.bind('click',function () {
        if ( window.confirm(msg) ) {
          scope.$eval(clickAction)
        }
      });
    }
  };
});

希望有帮助。

猜你在找的Angularjs相关文章