1

我知道即使ngShow评估为false,它仍然会在指令内执行脏检查。

也是如此ngShow(如ng-show=false):

  • 撰写DOM内部ngShow(因为它必须这样做$compile)然后隐藏/删除内容,或者
  • 只执行脏检查而无需创建DOM元素?
4

2 回答 2

1

ng-show只会将元素设置为display: none. 所以它们仍然会在 DOM 中并且仍然会被 Angular 进行脏检查。

尝试使用类似的东西ng-switch从 DOM 中实际删除元素。 http://docs.angularjs.org/api/ng.directive:ngSwitch

于 2013-04-18T15:00:32.010 回答
0

Angular.js 在编译期间不会创建任何 DOM 节点。它让浏览器构建 DOM,然后简单地通过它并收集指令。

因此,如果节点在您的模板中,它们确实会被创建,但由浏览器创建,而不是 Angular。

于 2013-04-18T14:01:50.870 回答