在我的角度应用程序中,我有一个指令。如果我用DOM操作删除这个(例如jQuery empty()),则不会调用destroy事件:
myApp.directive('joe', function()
{
return {
restrict: 'E',
replace: true,
link: function(scope, element, attrs)
{
element.html("Hi !");
element.bind('$destroy', function()
{
console.log("Bye");
});
}
};
});
此外,如果我删除&使用empty()&添加很多次这个指令appendTo(),总是的节点数增加。这意味着所有指令始终在内存中,垃圾收集器永远不会删除这些节点。
也许这是一种“正常”行为,因为AngularJS无法知道何时直接删除/更改DOM节点。但是,是否有可能明确销毁指令?我怎么能通过DOM操作添加和删除指令,没有这种“”内存泄漏“”“?
谢谢!