【发布时间】:2015-07-01 14:07:45
【问题描述】:
我有一个指令,我用 ng-if 条件切换。该指令使用 jqlite 函数在 DOM 上添加元素(例如一些动画)。
但即使指令不存在于 DOM 中,添加动画的 jqlite 函数也会被触发。
我认为使用 ng-if 删除指令是不够的,但它的作用域也需要删除。
somepage.html - 已编辑
<directivename class="classname1" ng-if="condition">
</directivename>
directive.js
return{
controller:function($scope,$element,$rootScope){
/*adding and removing elemnts to dom */
}
}
我应该如何使用 $scope.$destroy() ?
当我看到 $element 变量的值时, 它有以下
$$hashKey: "object:336"
accessKey: ""
attributes: NamedNodeMap
baseURI: ""
childElementCount: 1
childNodes: NodeList[3]
children: HTMLCollection[1]
classList: DOMTokenList[3]
0: "classname1"
1: "ng-scope"
2: "ng-isolate-scope"
length: 3
classname1 指的是我给指令的类名。但是那个 指令在 DOM 中不存在。仍然 $element.classList 包含 那个类名。
是否与 $scope.$destroy() 问题有关?
【问题讨论】:
标签: javascript jquery angularjs