我在项目中使用AngularJS和ngView。
ngView与ngRoute完美配合,但当我回到previus链接时,ngView再次重新加载数据(使用Ajax)。
是否有可能“保留在内存中”的普通数据,以便不应该总是为所有人充电?
答案 0 :(得分:0)
您应该将数据存储在localStorage(如果localStorage不可用,则存储在cookieStorage中),并管理您自己的缓存策略。然后在显示之前检查控制器中的数据是否可用且未过期。我总是使用自己的服务,如:
(function () {
var __service = function () {
var __set = function (key, item) { localStorage.setItem(key, JSON.stringify(item)); };
var __get = function (key) { return (localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key)) : null); };
var __clear = function (key) { localStorage.removeItem(key); };
var __clearAll = function () { localStorage.clear(); };
return {
Set: __set,
Get: __get,
Clear: __clear,
ClearAll: __clearAll
};
};
angular.module('myApp').service('StorageService', __service);
}());
然后在我的控制器中,我将该服务用于工作,以便缓存每次到达时我都不想检索的信息。
PD:我知道我必须专门检查该服务,以检查localStorage是否可用。