0
我有兩個工廠如下:我可以使用另一工廠內的工廠來一起加入兩個REST請求嗎?
angular.module('categoryResource', ['ngResource', 'userResource'])
.factory('categories', function ($http, users){
var factory = {};
factory.getCategories = function() {
return $http.get('/api/userCategories');
};
factory.getCategoriesUsers = function() {
//call factory.getCategories(), parse the request to make it nice and tidy
//then call users.getUsers(), tidy them up in the same way as categories, join them together and return them all in a nice package.
};
var handleCategoriesUsers = function (data, status) {
}
return factory;
});
angular.module('userResource', ['ngResource'])
.factory('users', function ($http) {
var factory = {};
factory.getUsers = function() {
return $http.get('/api/users');
};
return factory;
});
我已經打了一個漂亮的TreeView與分類,但我也想用戶添加到這些類別;所以爲此我想我只是格式化用戶到我的treeView算法已經可以使用的東西。
我的問題是,我可以以某種方式在類別工廠(甚至完全不同的模塊/工廠)內執行它,並且只是同時返回結合的結果?如果是,如何?我是否需要像往常一樣爲$ http.get定義處理程序?那麼在那個處理程序中,調用另一個然後定義一個處理程序,然後返回結果?
這是真正有用的,但我得看看我可以用它解決我的問題:如果只是傾銷的鏈接是不可取的。即使它在我目前希望它工作的形式中沒有用處,它將對計劃B有很大的幫助(只需將它們兩個並在控制器中解析以獲得我想要的格式)。謝謝 – Bogdan
好吧,你不一定非要在控制器中做到這一點。你可以在你的服務中注入$ q,創建/返回一個新的promise,然後通過$ q.all – UnicodeSnowman
來解析這兩個requiests,如下所示:http://embed.plnkr.co/irmiddNu2nmucFGOuuux/app.js – UnicodeSnowman