【发布时间】:2016-12-01 04:31:57
【问题描述】:
我正在创建一个连接到 Firebase 实时数据库并在表格中显示值的程序。
她是我的代码:
var leadsRef = database.ref('leads/'+leadID);
var table = document.getElementById('remarksTable');
leadsRef.on('child_added', function(snapshot) {
var remark = snapshot.val().remark;
var timestamp = snapshot.val().timestamp;
var row = document.createElement('tr');
var rowData1 = document.createElement('td');
var rowData2 = document.createElement('td');
var rowData3 = document.createElement('td');
var rowDataText1 = document.createTextNode(remark);
var rowDataText2 = document.createTextNode(timestamp);
var rowDataText3 = document.createTextNode("Some text");
rowData1.appendChild(rowDataText1);
rowData2.appendChild(rowDataText2);
rowData3.appendChild(rowDataText3);
row.appendChild(rowData1);
row.appendChild(rowData2);
row.appendChild(rowData3);
table.appendChild(row);
});
leadID 是我从当前 url 获得的 ID,它包含正确的值,所以没有问题,路径也绝对正确。
这是表格代码:
<table class="table table-bordered" id="remarksTable">
<tr>
<th><strong>Created On</strong></th>
<th><strong>Timestamp 2</strong></th>
<th><strong>Remarks</strong></th>
</tr>
<tr>
<td>12312313231</td>
<td>12312312312</td>
<td>just a remark.</td>
</tr>
</table>
现在,当我运行该页面时,它连接到 Firebase 数据库并加载所需的值,创建表行和表数据,将文本附加到它,然后最后将行附加到 ID 为 remarksTable 的表,但是它没有正确创建行。请注意,该表是使用 Bootstrap 创建的。
看起来是这样的:
如您所见,第一行显示正常,但由 javascript 创建的接下来的 2 行看起来有点不同。
【问题讨论】:
-
要做这样的事情,最好使用像 Mustache 这样的模板引擎。这将比手动创建 html 元素和节点更干净。 BTW @Quentin 的解决方案应该可以解决您的问题
标签: javascript twitter-bootstrap firebase html-table firebase-realtime-database