单击ng的确认对话框-AngularJS

我正在尝试ng-click使用自定义angularjs指令在上设置确认对话框:

app.directive('ngConfirmClick', [

function(){

return {

priority: 1,

terminal: true,

link: function (scope, element, attr) {

var msg = attr.ngConfirmClick || "Are you sure?";

var clickAction = attr.ngClick;

element.bind('click',function (event) {

if ( window.confirm(msg) ) {

scope.$eval(clickAction)

}

});

}

};

}])

这很好用,但不幸的是,未评估使用我的指令的标记内的表达式:

<button ng-click="sayHi()" ng-confirm-click="Would you like to say hi?">Say hi to {{ name }}</button>

(这种情况下不评估名称)。这似乎是由于我的指令的终端参数。您有解决方法的想法吗?

要测试我的代码,请执行以下操作:http :

//plnkr.co/edit/EHmRpfwsgSfEFVMgRLgj?p=preview

回答:

如果您不介意不使用ng-click,则可以正常使用。您可以将其重命名为其他名称,然后仍然读取属性,同时避免单击处理程序被两次触发而导致当前出现问题。

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

我认为问题是terminal指示其他指令无法运行。与的数据绑定{{ }}只是该ng-bind指令的别名,可能已被取消terminal

以上是 单击ng的确认对话框-AngularJS 的全部内容, 来源链接: utcz.com/qa/405263.html

回到顶部