我有布局,我有:
<li ng-click="GetLoader();"><a href="../Account/#/PersonalInfo">ACCOUNT</a></li>
<li ng-click="GetLoader();"><a href="#">SETTINGS</a></li>
在索引页面上,我有一个菜单和ng-view,我可以在点击中更改页面
索引页面中还包含一个微调器.
<div class="loading" ng-show="ticketloading" ng-init="GetLoader()">
<div>
<img class="spinner" ng-src="~/Images/ajax-loader.gif" />
</div>
</div>
在我的剧本中,我有 –
$scope.GetLoader = function() {
$scope.ticketloading = true;
loader.css("z-index", "1");
}
我的问题是,当用户点击“帐户”时,它会被加载,但只有几毫秒.然后它变为全部空白.我从ng-view接收数据.我的问题是如何延迟显示ng-view以显示加载程序更长一点.
Thanx提前!
最佳答案 首先,您应该避免在控制器中使用DOM操作.在您的情况下,最好使用声明性ngClass指令来设置不透明度.
那你的实际问题是你不想使用静态setTimeout隐藏加载,而是监听$routeChangeSuccess:
$rootScope.$on('$routeChangeSuccess', function() {
$rootScope.ticketloading = false;
});
并在模板中使用此加载标志,就像您当前正在做的那样.
例如,您可以将上面的事件侦听器放在运行块中.