我基本上是在恢复这个问题,但对我来说,它发生在页面加载时略有不同。
//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
,也会发生同样的情况。
使用 ng-cloak 指令:
<div ng-app="myApp" ng-controller="MyCtrl" ng-cloak>
这应该有助于在加载之前隐藏AngularJS html模板。https://docs.angularjs.org/api/ng/directive/ngCloak
问题是在呈现 HTML 时未初始化控制器。你可以像darron614所说的那样使用ng-cloak,以防止你的HTML模板在编译之前显示。
试试 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>