我有一个编译以下html的指令:
<div asi-template class="{{asimon.isTable(_a.path+'.'+key) }}">
asimon.isTable是一个vanilla javascript函数,我的问题是,调用这样的函数可能会阻止GC即使在视图被破坏后收集它吗?
我不知道是什么让我的指令泄漏。
顺便说一句 这是我的指示:
module.directive('asiTemplate',
function($compile) {
return {
link: function(scope, element, attr) {
var wachingGroup=scope.$watchGroup(
[
function(scope){ return scope.$eval(attr.asiPath); },
function(scope){ return scope.$eval(attr.asiObject); },
function(scope){ return attr.asiClass; }
],
function(value){
var scope_id = asi.path.get('scope_id.value', element[0].attributes);
console.log({scope_id:scope_id, scope:asi.scope[scope_id], attr:element[0].attributes});
if(asi.scope[scope_id] !== undefined) destroyscope(scope_id);
asi.template.load(element, attr, scope);
}
);
scope.$on('$destroy', function(){
wachingGroup();//desregistra el watchgroup
element.remove();
});
}
}
});