【发布时间】:2018-03-21 22:49:23
【问题描述】:
我正在尝试显示我存储在 Firebase 数据库中的所有候选人的列表。我正在使用 Polymer 2.0 Starter-Kit。
代码如下:
_checkParties() {
var candidate_list = []
firebase.database().ref("/candidates/"+this.party.$key).once("value", function(snapshot) {
snapshot.forEach(function(snap) {
var data = {"key": snap.key, "data": snap.val()}
var results = Object.keys(data["data"]).map(function(key) {
return {
name: key,
value: data["data"][key],
key: data["key"]
};
})
candidate_list.push(results[0])
})
})
this.candidates = candidate_list;
}
基本上,我从我的 firebase 查询该路径的子节点,然后将它们附加到我的 var candidate_list。在查询之外,我将this.candidates 设置为数组var candidate_list。
这是我的模板的代码:
<template is="dom-repeat" items="{{ candidates }}" as="candidate">
<div class="card">
<p>[[candidates]]</p>
<h3>[[candidate.name]] - [[candidate.value]]</h3>
<paper-button raised style="color: yellow; background-color: black;" on-tap="_castVote">Vote</paper-button>
</div>
</template>
我的静态属性的代码:
candidates: {
type: Array,
value: []
}
然后是我的构造函数:
constructor() {
super();
}
我尝试将其添加到我的构造函数中,但似乎没有任何影响:
constructor() {
super();
this.candidates = [];
}
结果应该是我的模板 dom-repeat 中的卡片显示了所有候选人。相反,我什么也没得到。
但是当我console.log 时,我可以看到我所有的候选人。
【问题讨论】:
标签: javascript firebase polymer