0

我正在制作一个发出 http GET 请求的函数,然后使用该响应的一部分发出另一个 http GET 请求。但是,第一个 http GET 请求返回的数据包含在很多不必要的数据中(可能是一个 promise 对象),但我只需要它的 json 组件。如何在控制器中访问我的响应的 json 数据?这是我的代码。

 $scope.doSearch = function() {
    var upcResult = Restangular.one('upc',$scope.searchTerm).get()

//the upc returns an item, so i am trying to access that part of the json by using      
  upcResult.item, how if I console.log that it is undefined

$scope.doAnotherSearch = function() {
    var itemResult = Restangular.one('item',upcResult.item).get();

}
4

1 回答 1

2

您可以使用承诺链。

var upcResult = Restangular.one('upc',$scope.searchTerm).get();

upcResult.then(function (result) {
  // call other http get
  return Restangular.one('item',result.item).get();
}).then(function (result) {
  //....
});

我不知道在你的情况下是否Restangular.one(/*...*/).get();返回承诺,但你可以用 $q这样的方式包装它:

 var upcResult = Restangular.one('upc',$scope.searchTerm).get(); 
 var deferred = $q.defer();
 deferred.resolve(upcResult).then(function(){/*...*/});
于 2013-11-01T16:07:21.120 回答