检查localStorage是否在AngularJS路由中具有值的最简单方法

时间:2015-01-10 10:13:16

标签: javascript angularjs angularjs-routing

web中的许多教程都有一点奇怪和angularJS条件路由的巨大逻辑......

我需要一些非常简单的东西:

只需检查一个组件,如果localStorage的authFlag为true,则为:

app.config(function ($routeProvider) {
  $routeProvider
      .when('/', {
          templateUrl: 'views/app.html',
          controller: 'AppCtrl'
      })
      .when('/articles', {
          templateUrl: 'views/articles.html',
          controller: 'ArticlesCtrl',
          conditions: { isAuth }
      })
      .otherwise({
          redirectTo: '/'
      });
});

怎么做得更好?检查authFlag是否在localStorage中,如果没有,则root到'/'?

1 个答案:

答案 0 :(得分:4)

你需要添加解析,然后在resolve函数中添加对本地存储的检查, 并路由到" /"如果没有:

在resolve函数中添加以下代码

resolve:{
    data:  function(){
        var result = window.localStorage.getItem("authFlag");

        if (result)
        {
            // do whatever you want to do
        }
        else
        {
            $location.path("/");
        }
    }
},