2016-02-11 3 views
0

Я пытаюсь загрузить данные в firebase с $firebaseArray как:

var ref = new Firebase(FURL); 
var eventRef = ref.child('event'); 
$scope.events= $firebaseArray(eventRef) 

У меня есть event данные в моей firebase. Но мои $scope.events возвращается:

[] 
    0: Object 
    $$added:() 
    $$error:() 
    $$getKey:() 
    $$moved:() 
    $$notify:() 
    $$process:() 
    $$removed:() 
    $$updated:() 
    $add:() 
    $destroy:() 
    $getRecord:() 
    $indexFor:() 
    $keyAt:() 
    $loaded:() 
    $ref:() 
    $remove:() 
    $save:() 
    $watch:() 
    length: 0__proto__: Array[0] 

что возможная причина?

+0

Что вы показываете есть представление в памяти на '$ firebaseArray'. Код выглядит отлично, выход выглядит отлично. –

+0

Этот ответ может помочь: http://stackoverflow.com/questions/34932687/how-to-navigate-object-returned-from-angularfire/34933002#34933002 –

ответ

1

Возможная причина Вы получаете доступ к данным до их загрузки.

Вы должны ждать, пока загружаются данные, переписать код так:

var ref = new Firebase(FURL); 
var eventRef = ref.child('event'); 
$scope.events = $firebaseArray(eventRef); 

$scope.events.$loaded() 
    .then(function(){ 
     // access events here; 
    }); 
+0

Имейте в виду, что '$ loaded()' будет срабатывать только тогда, когда загружены * начальные * данные. Поскольку '$ firebaseArray' * синхронизирует * изменения с сервера, большинство операций должно * не * выполняться в ответ на' $ loaded() '. –

+0

Не мой ответ правильный @FrankvanPuffelen? –

+0

Это зависит от того, что вы делаете в '$ loaded', о котором, к сожалению, ни вы, ни вопрос ничего не говорите. Обычное использование заключается в том, что люди подсчитывают количество элементов в массиве и добавляют их к DOM. Если вы сделаете это с помощью '$ loaded()', вы увидите только * начальный * счетчик. Для этого типа прецедента вы должны [расширять '$ firebaseArray'] (https://www.firebase.com/docs/web/libraries/angular/guide/extending-services.html#section-firebasearray). Если вы просто хотите регистрировать события, чтобы увидеть, что загрузка работает, поместите это в свой HTML: '

{{ events | json }}
' –

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