我有一些数组数据var queries = [];
我希望在两个AngularJS应用程序之间保持并共享。 2个应用程序,一个用于前端,另一个用于管理端。两端都会使整个页面在加载时加载。
我尝试使用以下代码共享数据,但它似乎不起作用:
.factory('QueryService', function() {
var queries = [];
var factory = {};
//..
factory.addQuery = function(query) {
queries.push(query);
localStorage.setItem('queries', JSON.stringify(queries));
console.log(JSON.parse(localStorage.getItem('queries')));
return JSON.parse(localStorage.getItem('queries'));
};
//..
return factory;
}
我只使用上面的代码将最后一个元素添加到queries
数组中。
我还使用angular-local-storage尝试了以下操作,但我仍然得到相同的结果。
.factory('QueryService', ['localStorageService', function(localStorageService) {
var queries = [];
var factory = {};
//..
factory.addQuery = function(query) {
queries.push(query);
localStorageService.set('queries', queries);
console.log(localStorageService.get(('queries')));
return localStorageService.get(('queries'));
};
//..
return factory;
}
我需要数组queries
数据在前端应用和管理端都可用。
有人可以帮我吗?
答案 0 :(得分:1)
你应该试试这个:
// save to localStorage
localStorage.myData = angular.toJson(data);
// retrieve from localStorage
var data = angular.fromJson(localStorage.myData);
让我知道这是否有效。
答案 1 :(得分:1)
使用工厂为特定工厂设置私有变量,然后可以设置并获取该私有变量的值。
如果需要,您可以创建另一种方法来清除查询变量。
.factory('QueryService', function () {
var queries = [];
var factory = {};
return {
addQuery : function (query) {
queries.push(query);
localStorage.setItem('queries', JSON.stringify(queries));
console.log(JSON.parse(localStorage.getItem('queries')));
return JSON.parse(localStorage.getItem('queries'));
},
fetchQuery : function ( ) {
return localStorage.getItem('queries');
}
};
});