在Angular中,有没有办法防止包含连接值的表达式中的闪烁?

时间:2013-10-25 20:45:12

标签: angularjs

是否有办法防止包含{{person.LastName+ ", " + person.FirstName}}等连续值的模板闪烁?

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

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

5 个答案:

答案 0 :(得分:14)

您可以使用ngCloak指令。来自文档:

  

ngCloak指令用于阻止Angular html模板   来自浏览器的原始(未编译)短暂显示   在您的应用程序加载时表单。使用此指令可以避免   由html模板显示引起的不良闪烁效应。

答案 1 :(得分:6)

您只需使用ng-show即可。 我已经创建了一个演示来显示结果。 http://plnkr.co/edit/ZAC8RzagPYmLHgXcPazW?p=preview

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

答案 2 :(得分:5)

你可以使用" ng-bind"你的包装器标签中的属性,而不是这个:

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

你可以这样做:

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

仅在正确连接值时才会更改标记文本。

答案 3 :(得分:0)

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

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

在控制器上:

document.querySelector('.digits').style.display = 'block';

答案 4 :(得分:-1)

这是因为您不是从<head></head>部分加载角度js lib。如果对您来说不是什么大问题,只需在头部移动角度<script>标记即可停止闪烁。