我是AngularJS的新手。
当用户使用email-id登录时,我将从后端获取json响应,如下所示,动态session-id为12位
JSON响应
{
"json": {
"response": {
"statuscode": "0",
"statusmessage": "Success",
"user": [
{
"sessionid": "56756",
"groupdetails": {
"group-id": 216,
"group-code": "ABC",
"group-name": "School BSK"
},
"memberdetails": {
"member-id": 22,
"member-name": "Arya"
}
},
{
"sessionid": "123456789012",
"groupdetails": {
"group-id": 215,
"group-code": "XYZ",
"group-code": "College ABC"
},
"memberdetails": {
"member-id": 223,
"member-name": "Arya1"
}
}
]
}
}
}
我需要从响应中获取值,并使用不同的变量名分别存储每个会话ID。但问题是用户可以拥有任意数量的帐户。每个帐户都有不同的会话ID。
我不知道如何动态获取值并分别存储所有会话ID并进一步使用。
我使用以下代码从后端获得的响应。
Login.controller.js
(function () {
'use strict';
var app = angular
.module('app');
app.controller('LoginController', LoginController);
LoginController.$inject = ['$location', 'AuthenticationService', 'FlashService'];
function LoginController($location, AuthenticationService, FlashService) {
var vm = this;
vm.login = login;
(function initController() {
// reset login status
AuthenticationService.ClearCredentials();
})();
function login() {
vm.dataLoading = true;
if (vm.username.indexOf('@') != -1) {
AuthenticationService.Login(vm.username, vm.password, function(response) {
if (response.json.response.statuscode == 0 && response.json.response.statusmessage=='Success') {
AuthenticationService.SetCredentials(vm.username, vm.password);
$location.path('/');
console.log(response);
if (typeof (Storage) !== "undefined") {
var userdata = response;
localStorage.setItem('userdata', userdata);
}
else {
alert("Sorry, your browser does not support web storage...");
}
} else {
FlashService.Error(response.json.response.statusmessage);
vm.dataLoading = false;
}
});
} else {
AuthenticationService.adminLogin(vm.username, vm.password, function(response) {
if (response.json.response.statuscode == 0) {
AuthenticationService.SetCredentials(vm.username, vm.password);
$location.path('/admin');
console.log(response);
} else {
FlashService.Error(response.json.response.statusmessage);
vm.dataLoading = false;
}
});
}
}
}
}) ();
我的回复位于AuthenticationService.Login(vm.username, vm.password, function(response)
答案 0 :(得分:1)
为您的变量实现本地临时存储的最简单方法是对$ http请求使用缓存:
$http({
cache: true,
url:url}).then(function(rs){});
Angular的本机缓存工作正常,但无法存储在本地sqlite数据库中,因为您需要一个库: