我有一个工厂获取我数据库中的所有项目:
.factory('items', function($resource, VAS_API_URL, $q) {
return {
getItems: function() {
var deferred = $q.defer();
var url = VAS_API_URL + 'api/items';
$resource(url)
.query(function(items) {
deferred.resolve(items);
}, function(response) {
deferred.reject(response);
});
return deferred.promise;
}
};
})
我在控制器中调用此工厂并在以下视图中显示项目:
.controller('itemCtrl', function($scope, $state, items) {
$scope.item= items.getItems();
$scope.item.then(
function(items) {
$scope.items= items;
},
function(response) {
console.log('error fetching the items', response);
}
);
})
但在我显示所有times
的同一视图中,我想显示一个未存储在名为item
的{{1}}集合中的字段,但我有storeName
在项目集合中。
我的问题是我如何使用storeId
来获取数据库中每个storeId
的商店数据?
答案 0 :(得分:0)
解决初始承诺后,只需获取额外数据即可。例如
.factory('items', function($resource, VAS_API_URL) {
return $resource(VAS_API_URL + 'api/items');
})
.factory('store', function($resource, VAS_API_URL) {
return $resource(VAS_API_URL + 'api/store', { id: '@id' });
})
.controller('itemCtrl', function($scope, items, store) {
$scope.items = items.query(function(items) {
angular.forEach(items, function(item) {
item.store = store.get({id: item.storeId});
});
});
});
注意,我对您创建的API以及您创建的任何其他$resource
个实例做了一些假设,但您应该明白这一点。