链接angularJS请求



我正在寻找一个简单的示例来遵循,其中我使用请求的响应来发起额外的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});
});

最新更新