我想在文档中附加一个事件。单击文档时,我想删除我的指令元素。但它也在为所有过去的实例开火。
以下是代码:
link: function(scope, iElement, iAttrs) {
$document.on('click',function(){
iElement.slideUp('fast',function(){
$(this).remove();
});
});
}
答案 0 :(得分:8)
尝试删除destroy处理程序中的处理程序
link: function (scope, iElement, iAttrs) {
function handler() {
iElement.slideUp('fast', function () {
$(this).remove();
});
}
$document.on('click', handler);
scope.$on('$destroy', function () {
$document.off('click', handler);
})
}
答案 1 :(得分:4)
当你添加这样的jQuery事件时,即使在指令被销毁之后,事件也会保持活跃状态。你必须特别关闭这个事件:
link: function(scope, iElement, iAttrs) {
$document.on('click',function(){
iElement.slideUp('fast',function(){
$(this).remove();
$document.off('click');
});
});
}