该指令:
angular.module('WizmoApp', [])
.directive('confirmClick', function() {
return {
priority: -1,
restrict: 'A',
link: function(scope, element, attrs){
element.bind('click', function(e){
var message = attrs.ngConfirmClick;
// confirm() requires jQuery
if(message && !confirm(message)){
//e.stopImmediatePropagation();
//e.preventDefault();
}
});
}
};
});
,我试图从这里转录: Confirmation dialog on ng-click - AngularJS 足以让我的应用程序戛然而止。 没有在屏幕上显示,没有js错误,没有任何东西,只是一个空白的sacreen。
这就是我使用它的方式:
<tr class=""
ng-repeat="package in adminManifestVm.Manifest | orderBy:'Id' track by $index"
ng-click="adminManifestVm.debinPackage(package.Id);"
ng-confirm-click="Are you sure you want to debin this?">
不知道如何调试指令,更不用说写一个。
[编辑] 我只是注意到,在该示例中,该指令实际上被称为 ngConfirmClick 。改变它,但没有任何区别。
答案 0 :(得分:1)
你使用它错了
<tr class=""
ng-repeat="package in adminManifestVm.Manifest | orderBy:'Id' track by $index"
ng-click="adminManifestVm.debinPackage(package.Id);"
confirm-click val="Are you sure you want to debin this?">
并在您的指令中添加范围
angular.module('WizmoApp', [])
.directive('confirmClick', function() {
return {
scope:{
val: '='
},
priority: -1,
restrict: 'A',
link: function(scope, element, attrs){
element.bind('click', function(e){
var message = val;
// confirm() requires jQuery
if(message && !confirm(message)){
//e.stopImmediatePropagation();
//e.preventDefault();
}
});
}
};
});
答案 1 :(得分:0)
该解决方案无效。这个错误毫无意义:
语法错误:令牌'包'是第6列的意外令牌 表达[将包裹移回桩?]从[包装回来开始] 桩?]。
这就是我实现它的方式:
指令:
(function(){
angular
.module('WizmoApp')
.directive('confirmClick', function () {
return {
priority: -1,
restrict: 'A',
link: function(scope, element, attrs){
element.bind('click', function(e){
var message = attrs.val;
// confirm() requires jQuery
if(message && !confirm(message)){
e.stopImmediatePropagation();
e.preventDefault();
}
});
}
}
});
})();
查看:
<tr class=""
ng-repeat="package in adminManifestVm.Manifest | orderBy:'Id' track by $index"
ng-click="adminManifestVm.debinPackage(package.Id);"
confirm-click
val="Move Package back to Pile?">