我想在提交表单时创建确认对话框的指令。我发现的问题here类似,但它没有解决我的问题:
<button confirm-ng-click="Reset password?" type="submit" class="md-primary">Reset</button>
还有 JS:
(function () {
'use strict';
angular.module('haha', [])
.directive('confirmNgClick', [ConfirmNgClick]);
function ConfirmNgClick() {
return {
priority: -1,
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('click', function (event) {
var message = attrs.confirmNgClick;
if (message && !confirm(message)) {
event.stopImmediatePropagation();
event.preventDefault();
}
})
}
}
}
})();
所以,当我单击按钮时,对话框不会显示。我错过了什么?
最佳答案
将代码按原样插入 fiddle 并查看控制台会产生此错误:
未捕获错误:[$injector:nomod] 模块“哈哈”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
注册模块时需要指定一个数组作为第二个参数。
(function() {
'use strict';
// Notice second argument here
angular.module('haha', [])
.directive('confirmNgClick', [ConfirmNgClick]);
function ConfirmNgClick() {
return {
priority: -1,
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('click', function(event) {
var message = attrs.confirmNgClick;
if (message && !confirm(message)) {
event.stopImmediatePropagation();
event.preventDefault();
}
})
}
}
}
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="haha">
<button confirm-ng-click="Reset password?" type="submit" class="md-primary">Reset</button>
</div>
关于javascript - 按钮类型 ="submit"上的确认对话框指令 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682777/