У меня возникли проблемы с синхронизированными массивами на угловом пламени. Я на 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
, но в конце пустого массива. Может ли это означать, что сама бомба «застревает»? Я постараюсь воспроизвести это в плункер.
Это не похоже на AngularFire. И, очевидно, изменение поведения в автофокусировке потребует, по крайней мере, изменения в версиях lib или Angular или AF. Мое предположение было бы регрессией в SDK. Минимальное воспроизведение без дополнительных компонентов (т. Е. Наименьшее возможное место, которое может воспроизводить ошибку) было бы весьма полезным. – Kato
@ Като, что вы думаете о плункере - это показывает текущее поведение (ничего не перезагружается в $ firebaseArray). Предполагается ли это поведение или для запроса '' 'ref.limitToFirst (3) .on (...)' '', если массив всегда имеет три элемента (по крайней мере, пока все элементы в этих местах не были замечены)? – AdrienF
@AdrienF Это действительно похоже на ошибку. У нас есть исправление в очереди и оно будет развернуто. Я обновлю ответ на этот вопрос, когда он будет полностью развернут. Спасибо за отчет и извините за неудобства! –