我在onInit函数上有一个API调用。如何在多次调用onInit钩子时在Angular 1.5中只调用一次特定承诺
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
正在每次初始化的两个标志。
所以,检查是有点不工作。
每次调用$onInit
时都会调用API,初始化时会多次调用API。
我该如何拨打一次电话? 虽然它已被$onInit
调用。
为什么要$多次调用$ onInit()?如果它来自一个页面中的多个指令,那么我可以看到... – rrd
@rrd就是这样的。 – StrugglingCoder
创建完整的数据服务,将数据存储在服务中,并且只在数据尚未存在时进行$ http调用。 –