在做一些动作之前,我已经写了一个指令来打开一个模态作为确认。触发模态结果函数,但我无法执行ngConfirmClick操作。
app.directive('ngConfirmClick', function( $modal ) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('click', function() {
var message = attrs.ngConfirmMessage;
var action = attrs.ngConfirmClick;
var modalInstance = $modal.open({
templateUrl: 'views/modals/confirmClick.html',
controller: 'ConfirmClickCtrl',
resolve: {
message: function() {
return message;
}
}
});
modalInstance.result.then(function() {
scope.$apply(action);
});
});
}
}
});
<button ng-confirm-message="Really delete user?" ng-confirm-click="delete(user)" type="button" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove"></span></button>
知道为什么apply函数不起作用?
答案 0 :(得分:1)
attribute
总是被解释为字符串 - 这里没什么特别的。
将回调函数传递给指令的最简单方法如下:
app.directive('ngConfirmClick', function( $modal ) {
return {
// ... other options
scope : {
action : "&ngConfirmClick" // mind -&- at the beginning
},
link : funciton(scope, ...){
scope.action();
}
});