Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/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
Angularjs $window.sessionStorage值不可在同一窗口的其他选项卡中访问?_Angularjs_Session_Local Storage - Fatal编程技术网

Angularjs $window.sessionStorage值不可在同一窗口的其他选项卡中访问?

Angularjs $window.sessionStorage值不可在同一窗口的其他选项卡中访问?,angularjs,session,local-storage,Angularjs,Session,Local Storage,我使用$window.sessionStorage.isLoggedIn变量处理登录的angularjs,如下所示 $routeProvider .when('/', { templateUrl: 'app/components/main/dashboard.html', controller: 'dashboardController', resolve: { loggedI

我使用
$window.sessionStorage.isLoggedIn
变量处理
登录
angularjs
,如下所示

$routeProvider
        .when('/', {
            templateUrl: 'app/components/main/dashboard.html',
            controller: 'dashboardController',
            resolve: {
                loggedIn: function ($location, $window) {
                    console.info($window.sessionStorage.isLoggedIn)
                    if (!$window.sessionStorage.isLoggedIn) {
                        $location.path('/login');
                    }
                }
            };
        })

正常情况下,它工作正常,但当我在同一浏览器的新选项卡中打开web应用时,
$window.sessionStorage.isLoggedIn
的值将被取消定义,并重定向到
登录
页面,同时在我的上一个选项卡中,我的应用以登录状态工作。为什么会这样?本地存储与选项卡无关?

会话存储的值在选项卡之间不存在。您可以使用
localStorage
来执行此操作

localStorage
的一个缺点是不能为其设置过期日期。因此,在某些情况下,使用cookies是存储数据的最佳解决方案

因此,我更喜欢使用:

要了解有关本地存储和会话存储的更多信息,请查看以下链接:

angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
  // Retrieving a cookie
  var favoriteCookie = $cookies.get('myFavorite');
  // Setting a cookie
  $cookies.put('myFavorite', 'oatmeal');
}]);