发现这个代码在一个项目的指示我的工作之一:
element.on('$destroy', function() {
scope.$destroy();
});
需要该代码?或者我可以删除它?指令被销毁后,范围是否被销毁?
发现这个代码在一个项目的指示我的工作之一:
element.on('$destroy', function() {
scope.$destroy();
});
需要该代码?或者我可以删除它?指令被销毁后,范围是否被销毁?
记住,除非有您识别它的目的,实际上$destroy()
去除它的父作用域范围,下面是)正式文件的摘录
$摧毁(; 从父范围中删除当前范围(及其所有子范围)。删除意味着对$ digest()的调用将不再传播到当前作用域及其子级。去除也意味着当前范围有资格进行垃圾回收。
另请检查此SO Thread例如和详细的说明。
您不必编写此代码。
根据文档,在两种情况下会触发$destroy
事件。
取出就在作为一个侧面说明只要之前,你仍然可以使用元素的scope
在element.on('$destroy')
事件之前范围将被销毁:
element.on('$destroy', function() {
console.log('RIP', scope);
});
我在网站的子组件上使用类似的东西时,一些元素被我们的角度应用程序之外的父应用程序删除,这只是摧毁一些绑定和侦听器的方式 – maurycy
我看到的唯一一点 - 如果这是另一个元素的范围。这仍然是**,但可能会做点什么。 –
代码正在调用另一个指令的编译/追加,但我已将其删除。 – jcubic