onInit関数で作成しているAPI呼び出しがあります。今onInitフックが複数回呼び出されたときにAngular 1.5で特定の約束を1回だけ呼び出す方法
vm.$onInit = function() {
var callInProgress = false;
var resultsLoaded = false;
var url = '/api/times/cst';
if(callInProgress === false && resultsLoaded ===false){
callInProgress = true;
HttpWrapper.send(url,{"operation":'GET'}).then(function(result){
vm.times = result;
resultsLoaded = true;
},function(error){
vm.errorInApi = true;
});
}
$onInit
は、したがって、複数回のたびに初期化されているcallInProgress, resultsLoaded
二つのフラグと呼ばれています。
したがって、このチェックは機能していません。
APIは、$onInit
が呼び出されるたびに、初期化時に複数回呼び出されます。
どうすれば1回だけ電話をかけることができますか?しかし$onInit
で呼び出されています。
$ onInit()を何度も呼び出すのはなぜですか?もしそれがページ内の複数の指示から来たら、私はそれを見ることができました。 – rrd
@rrdはい、そのようなものです。 – StrugglingCoder
フルデータサービスを作成し、そのデータをサービスに格納し、データがまだ存在しない場合にのみ$ httpコールを行います。 –