2016-01-22 93 views
0

我正在做一个应用程序使用离子和firebase作为其后端。我正在利用孩子添加和孩子改变看两个单独的事件,但它继续发射2次为孩子添加和约8倍的孩子改变和检查firebase,我只有一个孩子添加,而不是两个....这里的代码片段孩子添加和孩子多次改变发射

1.

new Firebase("https://popping-torch-3029.firebaseio.com/btr/users/acceptedBySender/myid/").on("child_added",function(data,prevchild){ 

    console.log('added just fired'); 

     //the console will log this 2 times 

}); 

2.

new Firebase("https://popping-torch-3029.firebaseio.com/btr/users/posted/myid/").on("child_changed",function(data){ 

     console.log('changed just fired'); 

     //the console will log this 8 times 

    }); 
+1

有太多的代码在这里为我快速弄清楚发生了什么事情。但是从查看数据库来看,所有用户都有两个以上的子节点。如果您在没有*离子的情况下运行相同的查询*,您是否遇到同样的问题?如果是这样,请在没有离子的情况下尽可能少地复制您的问题请参阅http://stackoverflow.com/help/mcve了解最低限度复制是如何有用的,以及它为什么允许我们更好地帮助您。 –

+0

感谢您的提示,我只是编辑它。请再看一下,也许你会发现现在的问题。 – Benjorah

+0

没有。这些网址没有数据。还要注意,'child_changed'只会在数据发生变化时触发,这意味着必须有一些东西在积极地改变它。很可能你正在运行另一个客户端来改变它。但是如果没有看到问题的最小程度的完全再现,那么根本没有足够的信息来帮助。考虑设置一个可以重现问题的jsfiddle/jsbin。 –

回答

0

我现在已经解决了这个问题。事实证明,由于控制器绑定了多个视图,因此控制器正在重新加载。每次它加载它创建一个新的'观察者'....我希望这是明确的