取消绑定角度元素

时间:2014-09-17 21:17:26

标签: angularjs angularjs-directive

我在指令中有以下代码,我想确保在销毁范围时清理它。我看过网上以及代码,我想知道如何取消绑定元素。

var window = angular.element($window);
window.bind("resize", function(e){
    abc();
});

解决方案:

var abc = function() {};

var window = angular.element($window);
window.bind('resize', abc);

scope.$on('$destroy', function(e) {
    window.unbind('resize', abc);
});

1 个答案:

答案 0 :(得分:4)

当指令的范围被破坏时,从window取消绑定该函数。因此,在您的指令中,您将在范围的销毁事件中调用清理功能:

$scope.$on('$destroy', cleanUp);

创建cleanUp函数并调用jQuery' unbind function

this SO entry中有一个示例,但改为使用off函数(类似于unbind,但在jqLit​​e中不可用)。同样根据此SO条目,您可能必须为您的功能命名,因为您需要再次将其作为unbind调用中的参数进行引用。