在AngularJS指令中,如果你已经使用它,那么将元素引用设置为undefined
是否有意义?
换句话说,可以使用元素引用导致内存泄漏吗?我们目前正在分析我们的应用程序,并且我试图找出我们为什么会有内存泄漏。
例如,让我说在调用某些功能之前,我不想检查元素是否可见:
module.directive("myDir", function(){
return {
link: function(scope, element){
scope.$watch(function(){
return element.is(":visible");
}, function(isElementVisible){
if(isElementVisible){
// do something ...
}
}
}
};
});
这会导致泄漏吗?
答案 0 :(得分:0)
AFAICS这不会造成任何内存泄漏。 删除元素后,范围将被销毁,手表将被删除,不再引用该函数。
作为微优化(你不应该特别烦),如果你只想执行一些代码,当元素可见时,你可以手动删除手表。 (范围。$ watch()返回一个可以调用以删除监视的函数。)