Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-ngShow-它是否执行DOM组合?_Angularjs_Angularjs Directive - Fatal编程技术网

AngularJS-ngShow-它是否执行DOM组合?

AngularJS-ngShow-它是否执行DOM组合?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我知道,即使ngShow的计算结果为false,它仍然在指令内部执行脏检查 ngShow(比如ngShow=false)也是如此: 在ngShow内部编写DOM(因为它必须执行$compile),然后隐藏/删除内容,或者 只执行脏检查而不需要创建DOM元素 Angular.js在编译期间不创建任何DOM节点。它让浏览器构建DOM,然后简单地遍历它并收集指令 因此,如果节点在模板中,它们确实会被创建,但是由浏览器创建,而不是由Angular创建。Angular.js在编译过程中不会创建任何DOM

我知道,即使
ngShow
的计算结果为
false
,它仍然在指令内部执行脏检查

ngShow
(比如
ngShow=false
)也是如此:

  • ngShow
    内部编写
    DOM
    (因为它必须执行
    $compile
    ),然后隐藏/删除内容,或者
  • 只执行脏检查而不需要创建
    DOM
    元素

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


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

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


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

ng show
只会将元素设置为
display:none
。因此,它们仍将位于DOM中,并且仍然由angular进行脏检查


尝试使用类似于
ng switch
的方法从DOM中实际删除元素

ng show
仅将元素设置为
display:none
。因此,它们仍将位于DOM中,并且仍然由angular进行脏检查

尝试使用类似于
ng switch
的方法从DOM中实际删除元素