8

有没有办法防止包含连接值的模板闪烁,例如{{person.LastName+ ", " + person.FirstName}}

我不想看到“,”,直到$scope.person被绑定。

这是我可以放入过滤器的东西吗?你会为这种微不足道的事情创建一个过滤器吗?

4

5 回答 5

14

您可以为此使用ngCloak指令。从文档:

ngCloak 指令用于防止 Angular html 模板在加载应用程序时被浏览器以原始(未编译)形式短暂显示。使用该指令可以避免 html 模板显示引起的不良闪烁效果。

于 2013-10-25T20:46:27.597 回答
6

您可以简单地使用ng-show它。我创建了一个演示来显示结果。 http://plnkr.co/edit/ZAC8RzagPYmLHgXcPazW?p=preview

我在控制器中使用了 2 秒的超时时间,因此如果删除 ng-show,您可以看到闪烁。

于 2013-10-25T21:01:02.263 回答
5

您可以在包装标签中使用“ng-bind”属性,而不是这样:

<span>{{person.LastName+ ", " + person.FirstName}}</span>

你可以这样做:

<span ng-bind="person.LastName + ', ' + person.FirstName"></span>

这将仅在正确连接值时更改标记文本。

于 2014-08-26T07:55:58.523 回答
0

ng-cloak 有一些问题,所以我求助于使用普通的旧 css:

<div class="digits" style="display:none;">

在控制器上:

document.querySelector('.digits').style.display = 'block';
于 2015-09-17T11:39:38.073 回答
-1

发生这种情况是因为您不是从该<head></head>部分加载 Angular js 库。如果这对您来说没什么大不了的,只需将您的角度<script>标签移动到头部,它就会停止闪烁。

于 2014-03-22T14:46:38.710 回答