Javascript 为什么我的指令会丢失$event?
我有一个自定义指令来确认单击某个元素的用户是否真的想要执行某个操作:Javascript 为什么我的指令会丢失$event?,javascript,angularjs,Javascript,Angularjs,我有一个自定义指令来确认单击某个元素的用户是否真的想要执行某个操作: .directive('ngReallyClick', ['$modal', function ($modal) { return { restrict: 'A', scope: { ngReallyClick: "&", }, link: function (s
.directive('ngReallyClick', ['$modal',
function ($modal) {
return {
restrict: 'A',
scope: {
ngReallyClick: "&",
},
link: function (scope, element, attrs) {
var isDeleteDisabled = scope.ngReallyDisabled;
element.bind('click', function () {
if (isDeleteDisabled != true) {
var message = attrs.ngReallyMessage || "Are you sure ?";
...
var modalInstance = $modal.open({
template: modalHtml,
controller: ModalInstanceCtrl
});
modalInstance.result.then(function () {
scope.ngReallyClick({ ngReallyItem: scope.ngReallyItem }); //raise an error : $digest already in progress
}, function () {
//Modal dismissed
return false;
});
};
});
}
}
}]);
它的用途如下:
<a ng-really-message="Are you sure you want to save and close?" ng-really-click="saveAndCloseGlobal(456)"
我想这是因为ng click
是一个不同的指令,他们处理了它,您绑定了一个不同的事件。为什么不执行element.bind('click',函数(事件){
并使用它吗?ngReallyClick
指令有一大堆目标函数,我试图不弄乱在ng really click
属性中传递给它们的参数。我会看看我是否可以做些什么,谢谢。我不是建议添加一个新的,你已经在做元素.bind了('click',function(){…})
。我只是说添加事件参数,不需要HTML更改:)@OmriAharon我关心的是如何将传递给bind
的事件发送给我的end函数,而不是如何在指令代码本身中获取该事件对象。什么是ModalInstanceCtrl?为什么不在模态打开中设置scope:scope?即,将当前作用域从link函数传递给模态的作用域。然后可以必须将关闭函数直接放在链接函数中。