Angular在发生错误时显示绑定。这可以避免吗?

时间:2015-01-12 15:40:15

标签: angularjs exception

似乎Angular的默认行为是在抛出异常并且无法继续时显示html中存在的绑定。在这种情况下有没有办法隐藏它们?

我认为ng-cloak可能适用于此,但我试图避免在我的应用中为每个元素添加ng-cloak。

思想?

2 个答案:

答案 0 :(得分:1)

然后在包含您要隐藏的所有内容的大ng-cloak中添加div。你甚至可以隐藏整个<body>

另一种常见解决方案是在isReady上添加$scope变量。默认情况下,isReadyfalse,您可以使用不同的值显示{{...}}。加载完所有内容(例如您的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>