我有一些 HTML 像
<p class="noresults">{{numberOfContacts}} Results Are Available</p>
{{numberOfContacts}}
在加载 Angular 之前,我可以隐藏吗?所以它只会说Results Are Available
我似乎有一些解决方案,例如在 Angular 加载之前隐藏整个身体,但如果可能的话,我宁愿不这样做。
是的,使用ng-cloak。只需将class="ng-cloak"
或添加ng-cloak
到这样的元素
使用指令<div ng-cloak></div>
使用类<div class="ng-cloak"></div>
它只是一组 CSS 规则,display: none !important
当 Angular 渲染你的 DOM 时,它会移除 ng-cloak,因此元素是可见的。
使用<span ng-bind="numberOfContacts" />
而不是 {{numberOfContacts}}
有时,即使我使用了ng-cloak
,我仍然可以看到几秒钟的牙套。添加以下样式解决了我的问题:
[ng-cloak]
{
display: none !important;
}
有关更多说明,请参阅此链接链接。
希望它有所帮助:D
这通常只是在非常慢的设备上处理复杂内容时才会出现的问题。在这些情况下,当 AngularJS 解析 HTML、准备和处理指令时,浏览器可能会在文档中显示 HTML 的短暂时刻。在此时间间隔内,您定义的任何内联模板表达式将对用户可见。现在大多数设备都有相当不错的浏览器,它们的速度足够快,可以防止这个问题成为问题。有两种方法可以解决问题。
我已经看到 ng-cloak 在添加到元素时无法正常工作的问题。过去,我通过简单地将 ng-cloak 类添加到元素来解决这个问题。
您可以使用 ng-bind 代替表达式
<span ng-bind="data"></span>