每次在应用程序中从一个视图导航到另一个视图时,我都会激活一个代码。
app.run(function($rootScope, auth,$state)
{
$rootScope.$on('$stateChangeStart', function(event,url){
//exist token, redirect to home
if(auth.checkStatus()){
$state.go("home");
}
else{
//not exists token, stop redirection, go to /
event.preventDefault();
$state.go("/");
}
})
})
如果我在localstorage中有令牌,则没有限制来重定向任何状态。但是如果令牌在localstorage中不存在,那么我不应该加载另一个模板,并重定向到“/”状态。我遇到的问题是当未定义令牌时,它会很好地重定向到“/”状态,但它也会加载模板并重定向到它。我只需要在定义令牌时才加载另一个模板。
//factory auth
oLogin.checkStatus= function()
{
var aRutasPrivadas = [];
var aRutas=$state.get(); //get array with all the states
for(var i in aRutas)
{
aRutasPrivadas.push(aRutas[i].url);
}
if(this.in_array($location.path(),aRutasPrivadas) && (window.localStorage.getItem("TOKEN") === null || window.localStorage.getItem("TOKEN") === undefined) )
{
return false;
}
else{
return true;
}
}