2014-09-12 64 views
2

考虑使用ngRepeat来显示指令实例列表的应用程序。AngularJs - 我应该手动销毁指令实例吗?

当从列表中删除元素时,是否应该手动销毁指令实例或者是否足够安全地在包含元素的数组上调用splice()

开发者指南在这里不是很有帮助。

+0

我猜这是安全的,但为什么要手动销毁实例?为什么不在过滤器中使用'ngRepeat'? – Ashesh 2014-09-12 10:12:49

+0

我在考虑有关内存和性能问题的更多信息。 – Sprottenwels 2014-09-12 10:13:41

+0

拼接数组中的引用对象并不会将其摧毁,对吧? – Ashesh 2014-09-12 10:18:02

回答

2

如果您有疑问并希望检查该指令是否真的遭到破坏,您可以在指令中加入一块手表$destroy。例如:

// inside your link function 
scope.$on('$destroy', function() { 
    console.log("destroyed"); 
}); 
+2

我不知道为什么我没有想出。 – Sprottenwels 2014-09-12 10:17:11

+1

供参考:他们被毁坏 – Sprottenwels 2014-09-12 12:24:35