我正在寻找一个简单的示例来遵循,其中我使用请求的响应来发起额外的GET请求。
我有两个服务-一个返回包含ID的搜索结果对象列表-另一个获取此ID并返回图像。
例如:
myApp.factory('Search', ['$resource', function($resource){
return $resource('/api/search/', {}, {
getResults: {method:'POST'}
});
}]);
myApp.factory('Image', ['$resource', function($resource){
return $resource('/api/image/', { id: '@id' }, {
get: {method:'GET'}
});
}]);
如何更新我的控制器使用第一次调用的输出JSON来检索图像?
myApp.controller('myAppController', function($scope, Search, Image) {
$scope.searchResults = Search.getResults();
});
谢谢。
你可以通过嵌套调用来链接承诺(这是资源正在处理的),或者让之前的成功方法返回一个承诺,然后孵化到它上面。
根据您的场景,这可能是一个简单的解决方案:
Search.getResults(function (results) {
var imageId = results[0].imageId; // don't know what you need
$scope.images = Image.get({id: imageId});
});