gpt4 book ai didi

javascript - 如何在 Angular Js 的所有 Controller 中管理用户详细信息

转载 作者:行者123 更新时间:2023-11-30 16:13:26 24 4
gpt4 key购买 nike

大家好,我想知道如何通过 Angular Js 中的 View Controller 管理用户 session ID、名称。

senario 是我进行了 http 调用并获取了用户 ID 和名称。现在我想在任何 Controller 中使用它。

我尝试使用像设置这样的 Angular 值服务

app.value("user",{user_id:"0",user_name:"blank"})

和 Controller 中的 http 调用

app.controller("exampleCtrl",function($http,user){
user.user_id = data.user_id;
//lets say the user id is 4.
//and now user.user_id should be 4 as well
})

现在在另一个 Controller 中

app.controller("nextCtrl",function(user){
console.log(user.user_id);
//gives me 0 which should be 4?
})

我虽然它会给我 4。

我希望你对我正在尝试做的事情有一个大概的了解还有另一种方法吗?还是我做错了?请指导我。

谢谢。

最佳答案

好吧,有多种选择供您选择:
$sessionStoragelocalStorageappConstant$localStorage等。

You can even share the data between controllers using Factory and Services.

因为您只想让整个 Controller 都知道该变量。我将为您提供一个使用 $sessionStorage 的简单示例。

为了使用$sessionStorage$localStorage,您需要注入(inject)ngStorage

首先在您的 index.html 中包含源代码:

 <script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>  

然后在你的模块定义中,注入(inject)ngStorage:

var app = angular.module('Your App Name', ['ngStorage']);

您的 HTTP 调用:

app.controller("exampleCtrl",function($http,user,$sessionStorage){
user.user_id = data.user_id;
$sessionStorage.user_id = data.user_id;
//lets say the user id is 4.
//and now user.user_id should be 4 as well
})

并且,在另一个 controller 中,您可以像下面这样访问它:

app.controller("nextCtrl",function(user,$sessionStorage){
console.log($sessionStorage.user_id);
//gives you 4 which you can then assign to any var you like.
console.log(user.user_id);
//gives me 0 which should be 4?
})

以下PLUNKER演示了使用factory$sessionStorage在 Controller 之间共享数据:
http://plnkr.co/edit/XPHwKQYcSCk3GSilvFtE?p=preview

关于javascript - 如何在 Angular Js 的所有 Controller 中管理用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35882229/

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