0

我在我的项目中使用 AngularJS 和 ngView。

ngView 与 ngRoute 完美配合,但是当我回到上一个链接时,ngView 再次重新加载数据(使用 Ajax)。

是否可以“记住”以前的数据,因此不应该总是为所有数据充电?

4

1 回答 1

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 是否可用。

于 2015-03-01T15:32:02.527 回答