2016-02-19 110 views
0

我拨打了一个获取电话并检索了一些我想用来拨打另一个拨打电话的数据,并将该数据放入$scope中。像这样的东西。

$http.get('api/url/items').then(function(res){ 
    $scope.items = res.data; 
    $http.get('api/url/names/' + res.data[0].id).then(function(res){ 
    console.log(res.data.name); 
    $scope.name = res.data.name; 
    } 
} 

$scope.items被填充,但$scope.name不是。 console.log提供了正确的数据,但似乎在渲染后的视图之后。在呈现视图之前,如何获得第二个$http.get以在$scope之间填充?

回答

1

转换这个

$http.get('api/url/names/res.data[0].id') 

这个

$http.get('api/url/names/'+res.data[0].id) 
+0

对不起,这是一个错字,你的回应是我的代码。 –

0

我在我的原代码,是不是在说我现在解决了我的问题,简单的两个问题。

  1. 我正在使用一个函数来调用第二个$ http.get。到那个函数回调的时候,原来的$ http.get已经解决了,所以我在第一个$ http.get中移动了这个函数代码。
  2. 我正在使用for循环(var i)来调用第二个$ http.get函数并在我的$ scope.items [i]中设置值。当$ http.get解决了我var已经达到它的极限,导致一个未定义的错误。我创建了一个计数器变量,仅在第二个$ http.get中更改,以便索引正确匹配。