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 に答える