我在我的项目中使用 AngularJS 和 ngView。
ngView 与 ngRoute 完美配合,但是当我回到上一个链接时,ngView 再次重新加载数据(使用 Ajax)。
是否可以“记住”以前的数据,因此不应该总是为所有数据充电?
我在我的项目中使用 AngularJS 和 ngView。
ngView 与 ngRoute 完美配合,但是当我回到上一个链接时,ngView 再次重新加载数据(使用 Ajax)。
是否可以“记住”以前的数据,因此不应该总是为所有数据充电?
您应该将数据存储在 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 是否可用。