【发布时间】:2016-10-20 13:32:25
【问题描述】:
帮助!我想知道如何阻止它?使用 angular ui-router 和 angularFire 后,我遇到了无限摘要循环的问题。我发现即使调用了登录状态,循环也会不断陷入 $stateChangeStart 。这是我的控制台日志。
1476969257159 Start: {} -> dashboard{}
Auth errorAUTH_REQUIRED
1476969259545 Start: {} -> login{}
1476969260671 Start: {} -> dashboard{}
Auth errorAUTH_REQUIRED
1476969263828 Start: {} -> login{}
1476969266255 Start: {} -> dashboard{}
我用这种方式编码我的 ui-router
$rootScope.$on("$stateChangeError",function (ev,toSt,toPa,fromSt,fromPa,error) {
// We can catch the error thrown when the $requireSignIn promise is rejected
console.log("Auth error" + error);
if (error === "AUTH_REQUIRED") {
$state.go("login");
}
});
还有
$urlRouterProvider
.when('/', '/dashboard')
.when('','/')
.otherwise('/404');
我的状态,
$stateProvider
.state('dashboard', {
url: '/dashboard',
controller: 'dashboardCtrl',
templateUrl: 'templates/dashboard/dashboard.html'
resolve: {
// controller will not be loaded until $requireSignIn resolves
// Auth refers to our $firebaseAuth wrapper in the factory below
"currentAuth": ["wifAuth", function(wifAuth) {
// console.log ("dashboard check");
// $requireSignIn returns a promise so the resolve waits for it to complete
// If the promise is rejected, it will throw a $stateChangeError (see above)
return wifAuth.$requireSignIn();
}]
}
})
.state('login',{
url: '/login',
templateUrl: 'templates/auth/login.html',
resolve: {
// controller will not be loaded until $waitForSignIn resolves
// Auth refers to our $firebaseAuth wrapper in the factory below
"currentAuth": ["wifAuth", function(wifAuth) {
// console.log ("login check");
// $waitForSignIn returns a promise so the resolve waits for it to complete
return wifAuth.$waitForSignIn();
}]
}
})
【问题讨论】:
标签: angularjs firebase-authentication angularfire angularjs-digest