我看过很多指令示例,包括AngularUI 团队的那些,它们似乎没有进行任何清理。
这是他们的 ui-date 指令中的一个示例,它创建了一个 jQuery 日期选择器。 (资源)
element.on('blur', function() { ... });
他们在元素上放置了一个事件处理程序,但他们从未解除绑定事件。我本来希望会有代码存在,例如:
var namespace = ".uiDate";
element.on('blur' + namespace, function() { ... });
element.on("$destroy" + namespace, function ()
{
element.datepicker("destroy"); //Destroy datepicker widget
element.off(namespace); //Unbind events from this namespace
});
所以这让我想知道是否有什么我不明白的。在反复创建和销毁带有此指令的元素的情况下,他们所做的事情不会导致内存泄漏吗?
我错过了什么?