为什么AngularFire聊天示例会破坏?

时间:2013-10-23 19:43:07

标签: angularjs firebase angularfire

作为练习,我正在向http://angularfire.com/tutorial/上看到的基本angularFire聊天应用添加电子邮件身份验证。 在这个过程中,我注意到通过伪造删除了第一个条目,在DOM中出现了一个未定义的条目,其中0条目曾经是。

当我删除第二个(id 1)条目时,由于以下错误消息,没有显示任何内容: 不允许在转发器中复制。 Repeater:消息中的消息键:undefined:undefined

我注意到第一个未定义的内容出现在我的代码派生的教程中,但不是第二个..直到我将.firebaseio-demo.com url替换为我的firebase。这让我相信这不是我对代码的实现。

我失踪的.firebaseio-demo.com的烟雾和镜子背后是什么? 是否有神秘的验证规则?

在某些时候,angularjs.org上的Wire up a Backend示例有同样的问题..最近似乎已经纠正了。

1 个答案:

答案 0 :(得分:0)

我看到同样的事情,这对我来说感觉就像一个错误(从伪造的数组中删除的项目不应该出现在客户端的angularFire绑定模型数组中)。使用对象集合而不是数组时也不会发生这种影响,例如使用angularFireCollection或将原始messages类型设置为对象时:$scope.messages = {}而不是$scope.messages = []

但是,由于那些已删除的项 在结果数组中显示为undefined,因此在数组中有多个undefined会导致AngularJS转发器具有相同的值,are not allowed。因此,实际上需要在删除多条消息后看到的错误。

无论如何,现在似乎避免它的最佳方法是使用对象集合而不是上面提到的数组,或设置某种Angular filter来清除你的undefined个成员中继器。