我想在每次新路由加载时切换(隐藏/显示)一个loading gif,所以我的逻辑是:
- routeChangeStart = 显示 loading gif
- routeChangeSuccess = 隐藏 loading gif
这是我的代码:
//ANGULAR
app.run(function($rootScope) {
$rootScope.layout = {};
$rootScope.layout.loading = false;
$rootScope.$on('$routeChangeStart', function() {
//show loading gif
$rootScope.layout.loading = true;
});
$rootScope.$on('$routeChangeSuccess', function() {
//hide loading gif
$rootScope.layout.loading = false;
});
$rootScope.$on('$routeChangeError', function() {
//hide loading gif
alert('wtff');
$rootScope.layout.loading = false;
});
});
//HTML
<img src="img/loading.gif" ng-hide="!layout.loading"/>
这很奇怪,因为在更改3/4个路由后它仍然有效,但在更改路由时停止工作 :O
可能是什么问题呢?
这里有一个实时示例,感谢@Rob Sedgwick:http://plnkr.co/edit/ZpkgRhEAoUGlnXjbLb8b