2016-07-23 51 views
0

推動一些對象到我的火力地堡同步數據庫和檢索他們以後,我得到下面的數組:火力地堡數據庫:可通過.push不循環()'ED陣列

(index)     products time 

-KNOR5bBgf1ilVehk7BI Array[1] "22:26:47" 
-KNORdccyvXat8wsP0SF Array[2] "22:29:10" 

當使用火力地堡的.push() ,Firebase會生成一個隨機ID,例如上面的ID。

試圖環路他們Aurelia大街(使用repeat.for)

<order-details repeat.for="order of bill.orders" order.bind="order"></order> 

我收到以下錯誤後

aurelia-task-queue.js:40 Uncaught TypeError: Cannot read property 'getCollectionObserver' of null_observeCollection @ repeat.js:152itemsChanged @ repeat.js:99selfSubscriber @ aurelia-templating.js:3122call @ aurelia-templating.js:2989flushMicroTaskQueue @ aurelia-task-queue.js:117(anonymous function) @ aurelia-task-queue.js:61 

我敢肯定它與鍵(索引)做,因爲之前我使用了增量索引(0,1,2,3,...),它工作得很好。 編輯:我已經嘗試過其他鍵,如「0」和2,他們也不工作。似乎奧裏利亞只知道如何通過以0開頭的數組重複?

這是怎麼發生的?

+0

我很好奇。您如何使用Firebase,它是通過CDN的腳本標記,還是使用插件?因爲我在公共應用程序[此處](https://github.com/Vheissu/pokego.run-public/blob/master/src/home.ts#L91)中使用Firebase,而不是通過插件進行操作Firebase提供了CDN腳本,並且工作正常。我在viewmodel中獲取數據,並使用唯一ID進行推送。 –

+0

嗨德韋恩,你幫我在另一個問題太... http://stackoverflow.com/questions/38361421/error-container-has-not-been-made-global-how-to-solve 我是不使用插件,只是腳本標籤。 您的Firebase數據是否也有這些獨特的Firebase ID? –

+0

@DwayneCharrington,你可以在這裏找到我的項目的完整代碼:https://github.com/rclaes1995/aurelia-register –

回答

4

你正在嘗試使用repeat.for來遍歷一個對象而不是一個數組。您需要將其轉換爲數組以重複該對象的屬性。看到這篇文章:http://ilikekillnerds.com/2015/08/iterating-objects-using-repeat-for-in-aurelia/

在改變他們的JavaScript 0,1,2讀它爲:

orders[0] 
orders[1] 

的Javascript認爲,作爲一個數組。

你這是什麼東西:

orders['-KNOR5bBgf1ilVehk7BI'] 
orders['-KNORdccyvXat8wsP0SF'] 

的JavaScript認爲這是一個對象。如果沒有使用Aurelia的repeat.for的值轉換器,您無法循環對象的屬性。

由於它必須通過一個值轉換器,您可能需要設置一個綁定單引號來告訴repeat.for進行更新。你可以在這裏找到一個簡單的例子:Update Aurelia observed property on change to containing array

+0

非常感謝! –