你如何明确销毁指令?

时间:2013-08-16 01:25:57

标签: javascript angularjs angularjs-directive

在我的角度应用程序中,我有一个指令。如果我用DOM操作删除这个(例如jQuery empty()),则不会调用destroy事件:

myApp.directive('joe', function()
{
    return {
        restrict: 'E',
        replace: true,
        link: function(scope, element, attrs)
        {            
            element.html("Hi !");

            element.bind('$destroy', function() 
            {
                console.log("Bye");
            });
        }
    };
});

演示:http://jsfiddle.net/ymx4N/

此外,如果我删除&使用empty()&添加很多次这个指令appendTo(),总是的节点数增加。这意味着所有指令始终在内存中,垃圾收集器永远不会删除这些节点。

也许这是一种“正常”行为,因为AngularJS无法知道何时直接删除/更改DOM节点。但是,是否有可能明确销毁指令?我怎么能通过DOM操作添加和删除指令,没有这种“”内存泄漏“”“?

谢谢!

0 个答案:

没有答案