我已经使用
在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'));
我的日志返回给我的数据说饼干{"姓名":" Chetan shah" ,"电子邮件":"一些电子邮件ID"}
现在我想把这个项目交给我的controller.js在angularjs.I使用了https://github.com/grevory/angular-local-storage这个链接
在控制器里面我写了下面的代码
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);
但我的控制台返回cookiestore null
如何实现从index.js到controller.js的数据!!
答案 0 :(得分:3)
我怀疑发生的事情是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知道它访问已创建的模块,而不是创建新模块。 (括号/没有括号[]作为模块的第二个参数会产生差异)