有没有办法防止包含连接值的模板闪烁,例如{{person.LastName+ ", " + person.FirstName}}
?
我不想看到“,”,直到$scope.person
被绑定。
这是我可以放入过滤器的东西吗?你会为这种微不足道的事情创建一个过滤器吗?
有没有办法防止包含连接值的模板闪烁,例如{{person.LastName+ ", " + person.FirstName}}
?
我不想看到“,”,直到$scope.person
被绑定。
这是我可以放入过滤器的东西吗?你会为这种微不足道的事情创建一个过滤器吗?
您可以为此使用ngCloak指令。从文档:
ngCloak 指令用于防止 Angular html 模板在加载应用程序时被浏览器以原始(未编译)形式短暂显示。使用该指令可以避免 html 模板显示引起的不良闪烁效果。
您可以简单地使用ng-show
它。我创建了一个演示来显示结果。
http://plnkr.co/edit/ZAC8RzagPYmLHgXcPazW?p=preview
我在控制器中使用了 2 秒的超时时间,因此如果删除 ng-show,您可以看到闪烁。
您可以在包装标签中使用“ng-bind”属性,而不是这样:
<span>{{person.LastName+ ", " + person.FirstName}}</span>
你可以这样做:
<span ng-bind="person.LastName + ', ' + person.FirstName"></span>
这将仅在正确连接值时更改标记文本。
ng-cloak 有一些问题,所以我求助于使用普通的旧 css:
<div class="digits" style="display:none;">
在控制器上:
document.querySelector('.digits').style.display = 'block';
发生这种情况是因为您不是从该<head></head>
部分加载 Angular js 库。如果这对您来说没什么大不了的,只需将您的角度<script>
标签移动到头部,它就会停止闪烁。