似乎Angular的默认行为是在抛出异常并且无法继续时显示html中存在的绑定。在这种情况下有没有办法隐藏它们?
我认为ng-cloak可能适用于此,但我试图避免在我的应用中为每个元素添加ng-cloak。
思想?
答案 0 :(得分:1)
然后在包含您要隐藏的所有内容的大ng-cloak
中添加div
。你甚至可以隐藏整个<body>
。
另一种常见解决方案是在isReady
上添加$scope
变量。默认情况下,isReady
为false
,您可以使用不同的值显示{{...}}
。加载完所有内容(例如您的ajax数据)后,请将isReady
设置为true
。
例如,(假设您正在向控制器注入$ scope而不是将控制器作为vm注入)
在你的html标记中,
<h1>{{isReady?title:'loading'}}</h1>
控制器中的
angular.module('myApp').controller('$scope', function($scope){
activate();
function activate(){
// your code to get ajax data...
$scope.title='title to display';
$scope.isReady=true; // place at the end when everything before runs without error.
}
});
答案 1 :(得分:1)
您可以改用ngBind;
<div ng-bind="someExpression"></div>