我需要整个项目的登录值。所以我使用rootScope,但如果我的页面被刷新,rootScope值将被销毁。 所以我没有使用rootScope,而是使用AngularJS sessionStorage,现在成功地设置了值集。现在我需要为整个项目使用sessionStorage值。
如何在任何我想要的地方使用sessionStorage值。我正在寻找积极的重播。
控制器
if(response.data.status != null)
{
scope.User=response;
rootScope.UserId=response.data.UserId;
$window.sessionStorage.setItem("id",response.data.UserId);
scope.id = $window.sessionStorage.getItem("id");
state.go("userHome");
}
谢谢..!
答案 0 :(得分:2)
我会在" app.run"内的$ rootScope上创建访问器。 :
angular.module("myApp").run(['$rootScope', function($rootScope){
var id = null;
$rootScope.getId = function(){
if (!id) id = sessionStorage.getItem('id');
return id;
};
$rootScope.setId = function(userId) {
id = userId;
sessionStorage.setItem('id', userId);
};
}]);
您只需使用它,如下所示:
if(response.data.status != null)
{
scope.User=response;
rootScope.setId(response.data.UserId);
scope.id = rootScope.getId();
state.go("userHome");
}
你可以简单地将它绑定到"控制器作为"由$ rootscope提供:
<div>{{$root.getId()}}</div>
如果您从未将方法或属性绑定到名为$scope
的{{1}},则由于范围继承(如果您不了解角度范围继承),以下内容将起作用,你真的应该花一些时间谷歌搜索它)
getId