2016-01-22 62 views
2

我一直在與angularfire同步陣列的問題。我在firefire 2.3.1上使用angularfire 1.1.3。 我有一個查詢Angularfire:同步陣列的行爲

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

,我已經看到到現在爲止的行爲是,當我打電話

arr.$remove(0) 

將由查詢返回的下一個對象被加載到同步數組自動。這基本上使數組成爲查詢響應的滑動窗口 - 它總是具有相同數量的元素。

自上週以來,這種行爲似乎有所改變,我也得到兩種不同的情況:

1:要麼arr沒有得到加載與5個項目,但調用arr.$remove五次後,數組是空的 - 這對JavaScript數組來說是正常的行爲,但不是我之前看到的AngularFire同步數組。

2:或者arr被加載但然後消失,即代碼:

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

如果我再打突破,arr確實有五個項目,對應於火力地堡數據,但在最後的角度摘要循環,arr是一個空數組。

演示:This plunker顯示行爲1

所以我的問題是:

  • 當時我靠着那是API的沒有正式一部分的行爲?
  • 這種行爲是否改變了?
  • 如何解釋的最後一點(有上$loaded項目的火力點陣列,但隨後結束了空?)

更新

看來,行爲2後行爲1發生了 - 更確切地說,是在得到一個空的同步數組,如果我重新加載頁面,那麼我在arr.$loaded的回調中得到一個非空數組,但最後是一個空數組。 難道這意味着firebase本身會「卡住」嗎? 我會盡力在重拳中重現。

+0

這與AngularFire沒有關係。顯然,AF中行爲的改變至少需要改變角度或AF版本的庫。我的猜測會是SDK中的一個迴歸。沒有所有額外組件的最小再現(即儘可能最小的再現錯誤)將是非常有用的。 – Kato

+0

@Kato您對蹲點的看法如何 - 它顯示了當前的行爲(無需重新加載$ ​​firebaseArray)。如果數組總是有三個元素(至少在該位置的所有項目都被看到之前),那麼這種行爲是否會被期望,或者對於'''ref.limitToFirst(3).on(...)'''查詢呢? – AdrienF

+0

@AdrienF這實際上看起來像一個錯誤。我們已經排好了一個修復程序並將部署它。在完全部署後,我會更新這個問題的答案。 感謝您的報告,並對由此造成的不便深表歉意! –

回答

0

現在應該修復。抱歉給你帶來不便!

+0

它似乎固定在我的末端 - 謝謝 – AdrienF