2014-01-30 2 views
1

Я пытаюсь получить некоторые данные из объекта, который был извлечен из Firebase, используя AngularJS.Как пробить объект объектов?

Объект выглядит следующим образом ("feed_items" в коде):

enter image description here

И первые 10 объектов выглядит следующим образом:

enter image description here

Так что я пытаюсь сделать петля следующим образом:

function getUniqueFilters(feed_items) {  

    angular.forEach(feed_items, function(value, key){     
     console.log(value);  
    }); 
} 

Выход этой console.log (значение) является:

enter image description here

Я не понимаю, почему я не получаю какие-либо из первых 10 объектов, которые являются те, я, нуждающимся в данном из. Как мне их получить?

Заранее благодарен!

+1

Вы уверены, значение каждого объекта не является функцией? Выведите свои ключи и убедитесь, что вы возвращаете то, что хотите, или попробуйте 'value()', чтобы увидеть, возвращают ли функции требуемое значение. – pedalpete

+0

Привет @pedalpete, я обновил свой пост, чтобы показать, как выглядят объекты. Они определенно не являются функцией. – Teknotica

+0

Это интересно Teknotica. Это не имеет значения, но для обеспечения согласованности я рекомендую вам использовать функцию '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. Сказав это, вы выводите содержимое «ключа», чтобы узнать, что он возвращает? Как насчет просто передать '(i) {console.log (i)' в качестве обратного вызова для forEach и посмотреть, что это дает вам. Я часто нахожу, что эти небольшие изменения дадут вам намеки на то, что происходит. – pedalpete

ответ

0

что, если вы пытаетесь сделать так:

function getUniqueFilters(feed_items) {  

    for(var i=0; i<10; i++){ 
     console.log(feed_items[i]);  
    } 
} 
+0

Спасибо @STEVER - прочитайте ниже, так как это, по-видимому, проблема. – Teknotica

1

Я думаю, к тому времени, вы используете console.log, запрос еще не решен.

Вероятно, firebase заполняет объект после получения данных с сервера.

console.log является справочным и асинхронным, поэтому вы все еще видите данные в консоли.

Я не знаком с firebase, но вам, вероятно, следует искать обратный вызов/обещание.

Для тестирования я рекомендую остановить выполнение так:

console.log(object); 

debugger; // now check inside your console 
+0

Спасибо за ваш ответ. Вы правы, добавляя отладчик, я вижу, что данных все еще нет. Тогда я попытаюсь получить обратный вызов. Спасибо за вашу помощь! – Teknotica

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