据我所知,与$ watch不同,$ observe不会返回取消注册功能。
所以问题是 - 如果我在一个指令中有一个$ observe on属性,并且该指令被销毁了,那么自己会对这个$ observe进行角度清理吗?
如果没有,处理这个问题的角度方法是什么?
答案 0 :(得分:1)
在Angular 1.3.0之前,无法取消注册$observe
。自Angular 1.3.0起,$observe
returns the unregister function。
答案 1 :(得分:1)
如果您的担心是内存泄漏(因为它是我的),我将jsbin放在一起试着看看内存的行为并使用chrome检查器进行检查:
https://jsbin.com/luhewutetu/4/edit?html,js,output
我点击了“添加”了很多次,然后等了一下然后点击“删除”。然后我通过devtools强制垃圾收集。
这是生成的堆曲线:
从屏幕截图中可以看出,随着我添加元素,堆越来越大,但是当我删除所有内容并强制进行垃圾收集时,它会回到初始值。
所以,从这个简单的实验来看,似乎答案是肯定的,attribute.$observe
监听器没有, general 需要取消注册。