是否可以编写一个拦截器进行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) } }); } }; });
希望有帮助。