作为练习,我正在向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示例有同样的问题..最近似乎已经纠正了。
答案 0 :(得分:0)
我看到同样的事情,这对我来说感觉就像一个错误(从伪造的数组中删除的项目不应该出现在客户端的angularFire
绑定模型数组中)。使用对象集合而不是数组时也不会发生这种影响,例如使用angularFireCollection
或将原始messages
类型设置为对象时:$scope.messages = {}
而不是$scope.messages = []
。
但是,由于那些已删除的项 在结果数组中显示为undefined
,因此在数组中有多个undefined
会导致AngularJS转发器具有相同的值,are not allowed。因此,实际上需要在删除多条消息后看到的错误。
无论如何,现在似乎避免它的最佳方法是使用对象集合而不是上面提到的数组,或设置某种Angular filter
来清除你的undefined
个成员中继器。