链接angularJS请求

时间:2014-06-03 06:39:55

标签: angularjs

我正在寻找一个简单的示例,以便我使用请求的响应来启动其他GET请求。

我有2个服务 - 一个返回包含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();

});

感谢。

1 个答案:

答案 0 :(得分:0)

你可以通过嵌套你的调用来链接promises(这是资源正在工作的东西),或者让先前的成功方法返回一个promise然后孵化为它。

根据您的情况,这可能是一个简单的解决方案:

Search.getResults(function (results) {
  var imageId = results[0].imageId; // don't know what you need
  $scope.images = Image.get({id: imageId});
});