2016-01-22 97 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

我現在已經解決了這個問題。事實證明,由於控制器綁定了多個視圖,因此控制器正在重新加載。每次它加載它創建一個新的'觀察者'....我希望這是明確的