【发布时间】:2014-02-26 02:02:42
【问题描述】:
我正在尝试在每条新路线上切换(隐藏/显示)加载 gif,所以我的逻辑是:
- routeChangeStart = 显示加载 gif
- routeChangeSuccess = 隐藏加载 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
【问题讨论】:
-
嗨,有兴趣在这里查看答案。在这里,我在“点击”上启动“加载器”(更改路线的链接)并将其隐藏在模板/控制器内部(例如,当它加载时)。有效,但这是更整洁/干燥的方式。
-
@RobSedgwick 等不及回答了,哈哈,我认为有一个 var 切换 gif 很酷,让我们看看是否有人可以提供帮助;)
-
@RobSedgwick 如果可以,请自行尝试,我不知道为什么它不起作用,它适用于 3/4 路线更改然后停止工作:(
-
虽然您的方法有效,但我个人认为使用请求/响应拦截器非常适合。
标签: javascript angularjs toggle loading routes