gpt4 book ai didi

javascript - 从 html 访问 $window.sessionStorage

转载 作者:可可西里 更新时间:2023-11-01 13:26:22 24 4
gpt4 key购买 nike

在我的例子中,我正在使用 angularjs,我想访问 user 中保存的值以显示或不显示一些 html 标签。

首先它将用户变量保存在某个 Controller 中,它是登录操作的一部分。

$window.sessionStorage.setItem('user', AuthenticationService.getUser());

然后,我想根据该用户的 Angular 色显示一些 html 标签,如下所示:

<li><a id="id" ng-if="user.role=='admin'" href> console </a></li>

我使用 $rootScope 得到了类似的东西,但是当我刷新页面时我失去了值(value)。这就是为什么我需要使用 window.sessionStorage

有没有办法在 html 中访问 sessionStorage 中保存的值?或者这是错误的,我需要另一种方法?

最佳答案

您可以通过服务/工厂来完成

angular.module('myApp').factory("PrincipalService", [
"$window",
function($window){

var user;

return {
getUser : getUser,
setUser: setUser
};

function getUser(){
return user || angular.fromJson($window.sessionStorage.getItem('user'));
}

function setUser(userInfo){
user = userInfo;
$window.sessionStorage.setItem('user', angular.toJson(userInfo));
}

}
]);

编辑

我可以使用它通过 rootScope 共享每个 View 的方式:

angular.module("myApp").run(["$rootScope", "PrincipalService",
function($rootScope, PrincipalService){
$rootScope.getUser = PrincipalService.getUser;
$rootScope.setUser = PrincipalService.setUser;
}
]);

然后,在您的 View 中,您可以调用:

<span>{{$root.getUser()}}</span>

关于javascript - 从 html 访问 $window.sessionStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com