如果在另一个控制器中更改了$ window变量,如何在一个控制器中更新它

时间:2014-06-16 18:04:48

标签: angularjs

在一个文件中我有:

myModule.factory("SessionStatus", function($window) {
  if($window.sessionStorage.signedIn) {
    return "signedIn";
  } else {
    return "notSignedIn";
  }
});

myModule.controller('headerNavigationController',function($scope, SessionStatus) {
  $scope.session = {};
  $scope.session.user = SessionStatus;
});

另一方面,我有:

myModule.controller("loginController", function($scope, $window) {
  $scope.login = function() {
    $window.sessionStorage.signedIn = true;
  }
}

我希望在调用headerNavigationController时更新session.user login(),但是,我无法让它更新。我尝试将工厂放在与headerNavigationController相同的文件中,因为我认为这会在每次更改$session.user时自动更新$window.sessionStorage.signedIn变量。

1 个答案:

答案 0 :(得分:0)

获取/设置会话值的语法是:

获得:

window.sessionStorage.getItem(key);

环境:

window.sessionStorage.setItem(key, value);

查看此blog post以获取有关本地/会话存储的详细信息。