MEANスタックアプリケーションにリソースをキャッシュしたいと思います。
クライアントでは、サーバーを呼び出すサービスを使用します。ここで、キャッシュが機能しているかどうかを確認するためにトレースを配置します(そして、ページをリロードするたびにこのトレースが表示されます)。
この例では、都市のリストを取得します。
私のコントローラー:
angular.module('mean.cars').controller('CarsController', ['$scope', '$http', '$stateParams', '$location', 'Global','Cities',
function ($scope, $http, $stateParams, $location, Global, Cities) {
$scope.cities = Cities.query();
私のサービス:
angular.module('mean.sol').factory('Cities', ['$resource', function($resource) {return $resource('cities/', {}, {list : {method : 'GET', cache : true } });}]);
私もこれらの解決策を試しました:
mod.factory('Cities', ['$resource', function($resource, $cacheFactory) {return $resource('cities/', {}, {list : {
'get': { method:'GET', cache: $cacheFactory },
'query': { method:'GET', cache: $cacheFactory, isArray:true } } });}]);
または:
mod.factory('Cities', function($resource){
return $resource('cities/', {},
{get:
{
cache: true,
method: 'GET'
}
}
);
})
すべてが機能していますが、何もキャッシュされていません。それは常に私のサーバーを呼び出します。
$ resourceを$ cacheFactoryに置き換えるなど、多くの解決策を試しましたが、機能しません。私はそれをする良い方法を見つけることができません。
何か忘れましたか?
問題が見つかりました:
私は次のようにサービスを変更します:
mod.factory('Cities', ['$resource', function($resource) {return $resource('cities/', {}, {'query' : {method : 'GET', cache : true, isArray:true } });}]);
-> 'list'の代わりに 'query'を実行し、isArray:trueを追加します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加