大家好我想知道如何管理用户会话ID,通过Angular Js中的视图控制器命名。
Senario是我进行了http调用并获取用户ID和名称。 现在我想用的是每当我想要在任何控制器中。
我尝试使用像设置
这样的角度值服务app.value("user",{user_id:"0",user_name:"blank"})
和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
})
现在在另一个控制器
app.controller("nextCtrl",function(user){
console.log(user.user_id);
//gives me 0 which should be 4?
})
我虽然会给我4个。
我希望你对我想要做的事情有了一般的了解 还有其他办法吗?或者我做错了吗? pLease指导我。
谢谢。
答案 0 :(得分:2)
嗯,您可以使用各种选项:
$sessionStorage
,localStorage
,appConstant
,$localStorage
等等。
您甚至可以使用Factory和分享控制器之间的数据 服务。
因为您只想在整个控制器中知道变量。我将给你一个使用$sessionStorage
的简单例子。
要使用 $ sessionStorage 或 $ localStorage ,您需要注入 ngStorage 。
首先在您的index.html
中添加来源:
<script src="https://rawgithub.com/gsklee/ngStorage/master/ngStorage.js"></script>
然后在模块定义中,注入ngStorage
:
var app = angular.module('Your App Name', ['ngStorage']);
您的HTTP CALL:
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
在控制器之间共享数据:
http://plnkr.co/edit/XPHwKQYcSCk3GSilvFtE?p=preview
答案 1 :(得分:0)
Angular有一个名为ngCookies的模块,它允许你与cookie交互,而且它很简单易用!
compare_products_path
答案 2 :(得分:0)
如果您想要快速解决方案,我认为您可以将其存储在$rootScope
:
AngularJS using $rootScope as a data store。 (可能你不会经常更新它)。
如果您不介意添加依赖项,请查看此Angular模块:https://github.com/gsklee/ngStorage。这使您可以最好地控制存储数据的生命周期:HTML5 Local storage vs. Session storage