2016-10-23 43 views
1

我希望能夠顯示所有的FirstNameZipCodes的列表。我的數據如下所示:Polymerfire dom-repeat with Firebase objects

/user 
| 
|__INAxzxWKQrSAfA7tapV0c08YvfJ3 
| |____FirstName:"James" 
| |____ZipCode:"90210" 
| 
|__ANAczxWKQrEAfA7tapV0c08YvfX6 
    |____FirstName:"Simon" 
    |____ZipCode:"40213" 

和Polymerfire的火力文件看起來像這樣

<firebase-document 
    app-name="contacts" 
    path="/user" 
    data="{{allUsers}}"> 
</firebase-document> 

我的DOM重複就像

<template is="dom-repeat" items="{{_makeArray(allUsers)}}"> 
    <div class="profile card"> 
     {{item.FirstName}} 
    </div> 
</template> 

我添加了功能

_makeArray: function(items) { 
    return Object.keys(items).map(function (key) {items[key]}); 
} 

沒有錯誤rs,但我也沒有得到DOM

回答

0

dom-repeat將一個數組作爲items屬性。你可以做這樣的事情:

<template is="dom-repeat" items="[[makeArray(allUsers)]]"> 

... 

makeArray: function(items) { 
    return Object.keys(items).map(function (key) {items[key]}); 
} 
+0

我試圖在代碼中添加,我已經編輯了以上以反映更改,但我卻一無所獲的DOM – Bill

+0

當我console.log this.allUsers我得到的對象,所以我知道我從firebase – Bill

+0

數據是否被調用?它應該返回一組用戶。 – sfeast

0

你忘了回報:

_makeArray: function(items) { 
    return Object.keys(items).map(function (key) { return items[key]; }); 
} 

它的正常工作與我的數據顯示就好了。

1

只需使用firebase-query而不是firebase-document。你會得到一個數組。

<firebase-query 
    app-name="contacts" 
    path="/user" 
    data="{{allUsers}}"> 
</firebase-query> 

<template is="dom-repeat" items="{{allUsers)}}"> 
    <div class="profile card"> 
    {{item.FirstName}} 
    </div> 
</template> 
0

使用firebase-query返回對象的數組,可以傳遞給dom-repeate

<firebase-query 
    path="/user" 
    data="{{allUsers}}" 
    </firebase-query> 

dom-repeat

附加屬性as="data"
添加屬性data.$key

<template is="dom-repeat" items="{{_makeArray(allUsers)}}" as="data"> 
    <div class="profile card"> 
     {{data.$key}} 
     {{data.FirstName}} 
    </div> 
</template>