我知道即使ngShow
评估为false
,它仍然会在指令内执行脏检查。
也是如此ngShow
(如ng-show=false
):
- 撰写
DOM
内部ngShow
(因为它必须这样做$compile
)然后隐藏/删除内容,或者 - 只执行脏检查而无需创建
DOM
元素?
我知道即使ngShow
评估为false
,它仍然会在指令内执行脏检查。
也是如此ngShow
(如ng-show=false
):
DOM
内部ngShow
(因为它必须这样做$compile
)然后隐藏/删除内容,或者DOM
元素?ng-show
只会将元素设置为display: none
. 所以它们仍然会在 DOM 中并且仍然会被 Angular 进行脏检查。
尝试使用类似的东西ng-switch
从 DOM 中实际删除元素。 http://docs.angularjs.org/api/ng.directive:ngSwitch
Angular.js 在编译期间不会创建任何 DOM 节点。它让浏览器构建 DOM,然后简单地通过它并收集指令。
因此,如果节点在您的模板中,它们确实会被创建,但由浏览器创建,而不是 Angular。