在我正在处理的项目中找到此代码之一的指令:
element.on('$destroy', function () {
scope.$destroy();
});
是否需要此代码?或者我可以删除它吗?当指令被销毁时,范围是否被销毁?
答案 0 :(得分:1)
除非你确定它的目的,否则保留它,["flag_sum"]
实际上将范围从其父范围中移除,下面是官方文档的摘录
$破坏(); 从父作用域中删除当前作用域(及其所有子作用域)。删除意味着对$ digest()的调用将不再传播到当前范围及其子节点。删除还意味着当前范围符合垃圾收集的条件。
另请查看此SO Thread以获取示例和详细说明。
答案 1 :(得分:1)
您不必编写此代码。
根据文档,$destroy
事件会在两种情况下触发。
作为旁注,您仍然可以使用scope
事件中的元素的element.on('$destroy')
范围将被销毁:
element.on('$destroy', function() {
console.log('RIP', scope);
});