2016-01-22 3 views
2

У меня возникли проблемы с синхронизированными массивами на угловом пламени. Я на angularfire 1.1.3 с firebase 2.3.1. У меня есть запросAngularfire: поведение синхронизированного массива

var arr = $firebaseArray(ref.limitToFirst(5)); 

и поведение я не видел до сих пор является то, что, когда я называю

arr.$remove(0) 

следующий объект, который будет возвращен при запросе загружается в синхронном массив автоматически. Это по существу делает массив скользящим окном над ответом на запрос - он всегда имеет одинаковое количество элементов.

С прошлой недели, что поведение, кажется, изменились, и я получаю два разных случая:

1: Либо arr ли загружаться с 5 пунктов, но после вызова arr.$remove пять раз, массив пуст - который было бы нормальным поведением в массиве JavaScript, но это не то, что я видел раньше в синхронном массиве AngularFire.

2: Или arr загружается, но затем исчезает, то есть в коде:

arr.$loaded(function(){ 
\\ break 
}) 

Если я нарушу в обратный вызов, arr действительно есть пять пунктов, что соответствует данным о Firebase, но в конце цикла Angular digest, arr - пустой массив.

Демо:This plunker показывает поведение 1

Так что мои вопросы:

  • ли я полагаться на поведение, которое не было официально частью API?
  • Изменилось ли это поведение?
  • Что объясняет последние точки (firebase массив, имеющие элементы на $loaded но в конечном итоге пустой?)

Update

кажется, что поведение 2 происходит после того, как поведение 1 - точнее: после того, как попадая в пустой синхронизированный массив, если я перезагружаю страницу, тогда я получаю непустой массив в обратном вызове arr.$loaded, но в конце пустого массива. Может ли это означать, что сама бомба «застревает»? Я постараюсь воспроизвести это в плункер.

+0

Это не похоже на AngularFire. И, очевидно, изменение поведения в автофокусировке потребует, по крайней мере, изменения в версиях lib или Angular или AF. Мое предположение было бы регрессией в SDK. Минимальное воспроизведение без дополнительных компонентов (т. Е. Наименьшее возможное место, которое может воспроизводить ошибку) было бы весьма полезным. – Kato

+0

@ Като, что вы думаете о плункере - это показывает текущее поведение (ничего не перезагружается в $ firebaseArray). Предполагается ли это поведение или для запроса '' 'ref.limitToFirst (3) .on (...)' '', если массив всегда имеет три элемента (по крайней мере, пока все элементы в этих местах не были замечены)? – AdrienF

+0

@AdrienF Это действительно похоже на ошибку. У нас есть исправление в очереди и оно будет развернуто. Я обновлю ответ на этот вопрос, когда он будет полностью развернут. Спасибо за отчет и извините за неудобства! –

ответ

0

Это должно быть исправлено. Приносим извинения за неудобства!

+0

Похоже на исправление на моем конце - спасибо – AdrienF

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