Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查localStorage在AngularJS路由中是否有值的最简单方法_Javascript_Angularjs_Angularjs Routing - Fatal编程技术网

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

Javascript 检查localStorage在AngularJS路由中是否有值的最简单方法,javascript,angularjs,angularjs-routing,Javascript,Angularjs,Angularjs Routing,网络上的许多教程都有一些奇怪且庞大的angularJS条件路由逻辑 我需要一些非常简单的东西: 只需检查一个组件,如果localStorage的authFlag为true,则类似于: app.config(function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/app.html', controller: 'AppCtrl' })

网络上的许多教程都有一些奇怪且庞大的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是否在本地存储中,如果不在,则根目录为“/”?

您需要添加解析,然后在“解析”功能中,添加本地存储的检查, 并发送至“/”如果不是:

在“解析”函数中添加以下代码

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

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

您需要添加解析,然后在“解析”功能中,添加本地存储的检查, 并发送至“/”如果不是:

在“解析”函数中添加以下代码

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

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

result
在本地存储中存在
authFlag
键时将为true,即使值为
false
result
在本地存储中存在
authFlag
键时将为true,即使值为
false
但这只是配置路由。决定重定向到哪个路由的逻辑不属于这里。该逻辑应该在您的控制器中。@pixelbits如何编写此类逻辑?我将处理与服务器登录安全相关的重定向。它应该在服务器端进行处理。@pixelbits不,用户界面必须有路由,它只是配置路由。决定重定向到哪个路由的逻辑不属于这里。该逻辑应该在您的控制器中。@pixelbits如何编写此类逻辑?我将处理与服务器登录安全相关的重定向。它应该在服务器端处理。@pixelbits不,ui也必须有路由