2016-02-19 2 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

Convert это

$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 решил, что i var уже достиг предела, вызывающего неопределенную ошибку. Я создал счетчик var для изменения только во втором $ http.get, чтобы индексы правильно соответствовали.

 Смежные вопросы

  • Нет связанных вопросов^_^