javascript 和 angularjs 中的本地存储
Local Storage in javascript and angularjs
我使用
在 javasrcipt 的 index.js 文件中的本地存储中添加了一些数据
var account = {
name: name,
email: email
};
//converts to JSON string the Object Literal
account = JSON.stringify(account);
localStorage.setItem('Account', account);
console.log("cookies"+localStorage.getItem('Account'));
我的日志 return我的数据说 cookie{"name":"Chetan shah" , "email":"some email id"}
现在我想把这个项目拿到我的 controller.js 在 angularjs.I 已经用过 https://github.com/grevory/angular-local-storage 这个 link
我在控制器里面写了下面的代码
var classFinder= angular.module('classFinder',['onsen.directives', 'ngTouch','ngCookies','LocalStorageModule']);
classFinder.controller('courseController',['$scope', '$window', '$http', '$cookieStore','localStorageService',function($scope,$window,$http,$cookieStore,localStorageService){
var myaccount = localStorageService.get('Account');
console.log("cookiestore"+myaccount);
但是我的控制台 returncookiestore 为空
如何实现从index.js到controller.js的数据!!
我怀疑发生的事情是 localStorageService
除了 JSON 编码值之外还在做一些事情。查看来源 https://github.com/grevory/angular-local-storage/blob/master/src/angular-local-storage.js ,它似乎至少在键中添加了 ls
的前缀。
我会说您应该使用与获取值相同的界面来设置值,或者:
直接在控制器中使用window.localStorage(我怀疑您可能还需要解码JSON):
var classFinder= angular.module('classFinder',['onsen.directives', 'ngTouch','ngCookies','LocalStorageModule']);
classFinder.controller('courseController',['$scope', '$window', '$http', '$cookieStore','localStorageService',function($scope,$window,$http,$cookieStore,localStorageService){
var myaccount = $window.JSON.parse($window.localStorage.getItem('Account'));
console.log("cookiestore" + myaccount);
或使用 localStorageService
设置来自 index.js 的值。如果您需要访问应用程序的上下文,您可以通过 run
方法执行此操作:
angular.module('classFinder').run(['localStorageService', function(localStorageService) {
var account = {
name: name,
email: email
};
localStorageService.set('Account', account);
});
请注意,您必须 运行 在 之后 angular.module('classFinder', [....])
所以 Angular 知道它正在访问一个已经创建的模块,而不是创建一个新的。 (有括号/没有括号 [ ] 作为模块的第二个参数会产生很大的不同)
我使用
在 javasrcipt 的 index.js 文件中的本地存储中添加了一些数据var account = {
name: name,
email: email
};
//converts to JSON string the Object Literal
account = JSON.stringify(account);
localStorage.setItem('Account', account);
console.log("cookies"+localStorage.getItem('Account'));
我的日志 return我的数据说 cookie{"name":"Chetan shah" , "email":"some email id"}
现在我想把这个项目拿到我的 controller.js 在 angularjs.I 已经用过 https://github.com/grevory/angular-local-storage 这个 link
我在控制器里面写了下面的代码
var classFinder= angular.module('classFinder',['onsen.directives', 'ngTouch','ngCookies','LocalStorageModule']);
classFinder.controller('courseController',['$scope', '$window', '$http', '$cookieStore','localStorageService',function($scope,$window,$http,$cookieStore,localStorageService){
var myaccount = localStorageService.get('Account');
console.log("cookiestore"+myaccount);
但是我的控制台 returncookiestore 为空
如何实现从index.js到controller.js的数据!!
我怀疑发生的事情是 localStorageService
除了 JSON 编码值之外还在做一些事情。查看来源 https://github.com/grevory/angular-local-storage/blob/master/src/angular-local-storage.js ,它似乎至少在键中添加了 ls
的前缀。
我会说您应该使用与获取值相同的界面来设置值,或者:
直接在控制器中使用window.localStorage(我怀疑您可能还需要解码JSON):
var classFinder= angular.module('classFinder',['onsen.directives', 'ngTouch','ngCookies','LocalStorageModule']); classFinder.controller('courseController',['$scope', '$window', '$http', '$cookieStore','localStorageService',function($scope,$window,$http,$cookieStore,localStorageService){ var myaccount = $window.JSON.parse($window.localStorage.getItem('Account')); console.log("cookiestore" + myaccount);
或使用
localStorageService
设置来自 index.js 的值。如果您需要访问应用程序的上下文,您可以通过run
方法执行此操作:angular.module('classFinder').run(['localStorageService', function(localStorageService) { var account = { name: name, email: email }; localStorageService.set('Account', account); });
请注意,您必须 运行 在 之后
angular.module('classFinder', [....])
所以 Angular 知道它正在访问一个已经创建的模块,而不是创建一个新的。 (有括号/没有括号 [ ] 作为模块的第二个参数会产生很大的不同)