<html ng-app>
<body>
<p ng-cloak>{{foo}}</p>
</body>
</html>
我理解它的方式:
ng-cloak
指令时,它会应用display: none !important
。display: none !important
指令的内容中删除ng-cloak
规则。所以我理解为什么从编译阶段开始到链接阶段结束时都不会显示事物。但是我不明白为什么从HTML加载到编译阶段开始就不能显示出来。
答案 0 :(得分:1)
所有这些都在documentation中解释:
[...]当浏览器加载此css规则时,将隐藏使用ngCloak指令标记的所有html元素(包括其子元素)。当Angular在编译模板期间遇到此指令时,它会删除ngCloak元素属性,使编译的元素可见。
答案 1 :(得分:0)
除docs中的解释外。我曾在使用异步调用来检索数据的网站上工作,并且我已经使用了ng-cloak来避免在编译过程结束之前显示可能没有值的变量。我的用例是在编译过程结束之前DOMContent可能已经完成加载方式,但我的Angular数据还没有准备好。希望这能让您了解用例,但这并不是唯一的用例。