プロジェクトで 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 が利用可能かどうかを確認するには、そのサービスを特化する必要があることはわかっています。