AngularJS避免将多个$resource复制到同一URL
我有一些服务可以在多个控制器和工厂之间从服务器获取和共享数据提供者。当我加载页面时,一些工厂可以调用相同的服务函数来获取服务器数据。它生成对同一API资源的多个HTTP调用。我有一个最小的控件将API数据保存到变量中,转发调用使用这个数据。我希望避免这种情况。我可以做一个请求,其他数据请求等待完成第一个请求吗 实际实施示例:AngularJS避免将多个$resource复制到同一URL,angularjs,Angularjs,我有一些服务可以在多个控制器和工厂之间从服务器获取和共享数据提供者。当我加载页面时,一些工厂可以调用相同的服务函数来获取服务器数据。它生成对同一API资源的多个HTTP调用。我有一个最小的控件将API数据保存到变量中,转发调用使用这个数据。我希望避免这种情况。我可以做一个请求,其他数据请求等待完成第一个请求吗 实际实施示例: function getAllCategories() { var deferred = $q.defer(); if (categories
function getAllCategories() {
var deferred = $q.defer();
if (categoriesInitialized == 1) {
deferred.resolve(categories);
}
else {
categoriesInitialized = 0;
categoryApiMethods.getAll(function (result) {
for (var i = 0; i < result.length; i++) {
if (!checkCategoryExists(result[i]))
categories.push(new categoryModel(result[i]));
}
categoriesInitialized = 1;
deferred.resolve(categories);
}, function (data, status, header, config) {
//toaster.pop('error', data);
deferred.reject(data, status, header, config);
});
}
return deferred.promise;
}
函数getAllCategories(){
var deferred=$q.deferred();
如果(分类初始化==1){
延迟。解决(类别);
}
否则{
类别初始化=0;
categoryApiMethods.getAll(函数(结果){
对于(变量i=0;ifunction getAllCategories() {
var deferred = $q.defer();
if (!loading && categoriesInitialized == 1) {
deferred.resolve(categories);
}
else if (!loading) {
categoriesInitialized = 0;
loading = true;
categoryApiMethods.getAll(function (result) {
for (var i = 0; i < result.length; i++) {
if (!checkCategoryExists(result[i]))
categories.push(new categoryModel(result[i]));
}
categoriesInitialized = 1;
loading = false;
deferred.resolve(categories);
waiting.forEach(function(promise) {
promise.resolve(categories);
}
}, function (data, status, header, config) {
//toaster.pop('error', data);
deferred.reject(data, status, header, config);
waiting.forEach(function(promise) {
promise.reject(....);
}
});
} else {
waiting.push(deferred.promise);
}
return deferred.promise;
}
函数getAllCategories(){
var deferred=$q.deferred();
如果(!加载和分类初始化==1){
延迟。解决(类别);
}
否则,如果(!正在加载){
类别初始化=0;
加载=真;
categoryApiMethods.getAll(函数(结果){
对于(变量i=0;i