AngularJS - ngView和“留在记忆中”

时间:2015-03-01 12:23:01

标签: angularjs ngroute ng-view angularjs-ng-route

我在项目中使用AngularJS和ngView。

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

是否有可能“保留在内存中”的普通数据,以便不应该总是为所有人充电?

1 个答案:

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