我基本上恢复了这个question,但是对我来说有点不同,它会在页面加载时发生。
//HTML
<h1>Some very serious message here</h1>
<div ng-app="myApp" ng-controller="MyCtrl">
<div ng-if="text !== ''">
<label class="alert alert-danger">{{text}}</label>
</div>
</div>
//JS
var myApp = angular.module('myApp', ["ngAnimate"]);
myApp.controller('MyCtrl', function($scope) {
$scope.text = '';
});
请参阅JSFiddle。
为什么我可以看到(即使很快)标签?如果我为ng-if
更改ng-show
,也会发生同样的情况。
答案 0 :(得分:4)
使用ng-cloak指令:
<div ng-app="myApp" ng-controller="MyCtrl" ng-cloak>
这应该有助于在加载之前隐藏AngularJS html模板。 https://docs.angularjs.org/api/ng/directive/ngCloak
答案 1 :(得分:0)
问题是,在呈现HTML时,您的控制器尚未初始化。您可以使用ng-cloak作为darron614说,以防止HTML模板在编译之前显示。
答案 2 :(得分:0)
尝试ng-cloak
<h1>
Some very serious message here
</h1>
<div ng-app="myApp" ng-controller="MyCtrl">
<div ng-if="text !== ''" ng-cloak>
<label class="alert alert-danger">{{text}}</label>
</div>
</div>