我正在等待状态超时的等待屏幕。 我希望每次用户进入该状态时都会调用$ timeout。
类似于下面的函数:
function LoadingController($scope,$state,$timeout){
this.$state=$state;
var self=this;
if(this.handleStateValidity()){
var timeOutFn=function(){
self.goToRedirectUrl();
}
$timeout(timeOutFn,2000);
}
});
当然只有在首次加载控制器时才会调用它。如何检测此控制器所关注状态的后续命中?
答案 0 :(得分:0)
我所做的是第一次在指令或控制器初始化的链接上执行该功能。然后开始听取状态。 希望有更好的方法来做到这一点,我认为这有点“脏”:
var timeOutFn=function(){
self.goToRedirectUrl();
}
$rootScope.$on('$stateChangeStart', function(event, toState, toParams) {
if(toState.name=='loading'){
$timeout(timeOutFn,2000);
}
});
$timeout(timeOutFn,2000);