当且仅当满足条件时,重定向到另一个控制器。 Angular.js

时间:2017-04-18 17:11:54

标签: javascript angularjs

每次在应用程序中从一个视图导航到另一个视图时,我都会激活一个代码。

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;
        }

    }

0 个答案:

没有答案