Web API呼び出しを使用してサーバーからデータを取得するためのサービスとしてファクトリを作成しましたが、同じデータを再度取得する必要がある場合は、他の場所で同じデータを使用し、Web APIコールを再度作成する必要はありません。AngularJSでWeb APIデータを永続化する方法
角度jでデータを保持する方法はありますか?
Web API呼び出しを使用してサーバーからデータを取得するためのサービスとしてファクトリを作成しましたが、同じデータを再度取得する必要がある場合は、他の場所で同じデータを使用し、Web APIコールを再度作成する必要はありません。AngularJSでWeb APIデータを永続化する方法
角度jでデータを保持する方法はありますか?
方法:サービス
を使用して
1.我々はset
とget
に、その後controllers
との間でデータをサービスを作成することができますそのサービスを使用したいコントローラ機能に挿入します。
サービス:
app.service('setGetData', function() {
var data = '';
getData: function() { return data; },
setData: function(requestData) { data = requestData; }
});
コントローラ:
app.controller('myCtrl1', ['setGetData',function(setGetData) {
// To set the data from the one controller
var data = 'Hello World !!';
setGetData.setData(data);
}]);
app.controller('myCtrl2', ['setGetData',function(setGetData) {
// To get the data from the another controller
var res = setGetData.getData();
console.log(res); // Hello World !!
}]);
ここで、我々はmyCtrl1
は、データを設定するために使用され、myCtrl2
がデータを取得するために使用されていることがわかります。したがって、これ以上のAPI呼び出しを行わずに、controller
のデータをanother controller
に共有することができます。保存し、キーに基づいて保存されたセッションのデータを返します工場出荷時のサービスを作成し、セッションストレージ
を使用して
2.。
app.factory('storageService', ['$rootScope', function($rootScope) {
return {
get: function(key) {
return sessionStorage.getItem(key);
},
save: function(key, data) {
sessionStorage.setItem(key, data);
}
};
}]);
コントローラ:
set
とget
にセッションストレージからデータをコントローラにstorageService
依存性を注入します。
app.controller('myCtrl',['storageService',function(storageService) {
// Save session data to storageService
storageService.save('key', 'value');
// Get saved session data from storageService
var sessionData = storageService.get('key');
});
これにはHTML5 Web Storageを使用できます。あなたがあなたのサービス内の非同期呼び出しを作っているとあなたがフェッチしているデータが「静的」である場合に
localStorage.setItem("lastname", "Smith");
console.log(localStorage.getItem("lastname"));
それは、新たなオーバーヘッドにあなたがそれらを必要とするたびを避けるために、それらをキャッシュする意味があります。キャッシュはデフォルトで無効になっています。アプリケーション間でデータを共有する
$http({
method: 'GET',
cache: true
}
JSONデータとして何千ものレコードがあれば、それをキャッシュするのは良いでしょうか? –
これは$ httpサービス内のメカニズムであり、結果とともに変数を格納し、再度そのサービスにアクセスするたびに新しい呼び出しを行うことは避けています。それは完全に合法です。 – Karim
あなたはAPIから結果を格納するためのsessionStorageのために行くことができますし、再度同じデータを必要としながら、のsessionStorageはデータを持っており、使用しない場合は、再度呼び出しを行うとの同じのsessionStorageにそれを保存するチェックコントローラレベル。それはあなたのローカルで持っているときにあなたの不要なAPIコールを保存することがあります。 –