Angularfire:同步数组的行为

时间:2016-01-22 07:30:14

标签: javascript angularjs firebase angularfire

我在angularfire上遇到了同步数组的问题。我使用firebase 2.3.1进行了angularfire 1.1.3。 我有一个查询

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

直到现在我所看到的行为是,当我打电话时

arr.$remove(0)

查询返回的下一个对象会自动加载到synchronized数组中。这实质上使得数组成为查询响应的滑动窗口 - 它总是具有相同数量的元素。

自上周以来,这种行为似乎发生了变化,我得到两种不同的情况:

1:arr确实加载了5个项目,但在调用arr.$remove五次之后,数组为空 - 这在JavaScript数组上是正常行为,但不是我之前在AngularFire同步阵列上看到的内容。

2:或arr已加载但随后消失,即在代码中:

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

如果我中断了回调,arr确实有五个项目,与Firebase上的数据相对应,但在Angular摘要循环结束时,arr是一个空数组。

演示: This plunker 显示行为1

所以我的问题是:

  • 我是否依赖的行为不属于API的正式部分?
  • 这种行为有变化吗?
  • 最后一点解释了什么(firebase数组在$loaded上有项目但最后是空的?)

更新

似乎行为2发生在行为1之后 - 更确切地说:在获得空的synchronized数组之后,如果我重新加载页面,那么我在arr.$loaded的回调中得到一个非空数组,但是在一个空数组中结束。 这是否意味着firebase本身会被卡住"? 我会尝试在plunker中重现它。

1 个答案:

答案 0 :(得分:0)

现在应该修复。很抱歉给您带来不便!