У меня есть функция в моем friendsService
, которая возвращает массив объектов.Невозможно выполнить итерацию по полученным данным
getTopFriends: function() {
var deferred = $q.defer();
var data = [];
FB.api('/me/photos/uploaded', function(response) {
angular.forEach(response.data, function(key, value) {
FB.api('/' + key.id + '/tags', function(response) {
angular.forEach(response.data, function(key, value) {
var res = {
id: key.id,
name: key.name
}
FB.api('/' + key.id + '/picture?width=200&height=200', 'GET', function(response) {
res.url = response.data.url;
data.push(res);
});
});
});
});
deferred.resolve(data);
});
return deferred.promise;
}
Затем в мой контроллер, я использую его, как это:
friendsService.getTopFriends().then(function(data) {
console.log(data);
});
И я получаю ответ, как это, которое следовало ожидать.
Но если я попытаюсь перебрать эти данные с помощью angular.forEach()
, я не получаю никаких результатов или ошибок в консоли. Как узнать, в чем проблема в моем коде и как я могу ее исправить?
Получаете ли вы какие-либо ошибки js при переходе по итерации по данным? А также, пожалуйста, покажите точный код, который не работал. –
попытайтесь получить доступ к любому конкретному полю из ответов json как данные [0] .field_name и посмотреть, отображается ли оно. Затем вы можете отследить, что становится неправильным в вашем цикле forEach. – MasterMohsin
Похоже, ваш ответ не имеет поля данных. Вы должны попытаться выполнить итерацию ответа, а не 'response.data'. Надеюсь, что hepls –