【问题标题】:Firebase child_changed for tables表的 Firebase child_changed
【发布时间】:2017-11-04 09:04:40
【问题描述】:

当使用child_added 填充表格时,我使用append() 来显示HTML 表格上的数据,但是如何使用child_changed 来实现呢?我应该删除该行,然后用更改的信息附加一个新行吗?如果是这样,我该如何删除这一行?或者也许使用其他东西而不是 append() 来更新 HTML 表上的数据?

HTML 表格

<table id="tableAssets" class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">

    <thead>
      <tr id="tableHeader">
        <th class="mdl-data-table__cell--non-numeric">Name</th>
        <th class="mdl-data-table__cell--non-numeric">Brand</th>
        <th class="mdl-data-table__cell--non-numeric"> </th>
      </tr>
    </thead>

    <tbody id="table_body"> </tbody>

</table>

JavaScript

rootRef.on("child_added", snap => {

  var assetKey = snap.child("id").val();
  var name = snap.child("name").val();
  var brand = snap.child("brand").val();

  $("#table_body").append("<tr data-id='"+assetKey+"'>"+
                          "<td class='mdl-data-table__cell--non-numeric'>" + name + "</td>" +
                          "<td class='mdl-data-table__cell--non-numeric'>" + brand + "</td>" +

                          "<td class='mdl-data-table__cell--non-numeric'><div buttons>"+
                                  "<button class='delete-btn'><i class='material-icons'>delete</i></button>"+" "+
                                  "</div></td></tr>");
});

【问题讨论】:

    标签: javascript jquery html firebase firebase-realtime-database


    【解决方案1】:

    对于在 tr 中添加的孩子使用 id

     rootRef.on("child_added", snap => {
    
          var assetKey = snap.child("id").val();
          var name = snap.child("name").val();
          var brand = snap.child("brand").val();
    
          $("#table_body").append("<tr id='row"+assetKey+"'>"+
                                  "<td class='mdl-data-table__cell--non-numeric'>" + name + "</td>" +
                                  "<td class='mdl-data-table__cell--non-numeric'>" + brand + "</td>" +
    
                                  "<td class='mdl-data-table__cell--non-numeric'><div buttons>"+
                                          "<button class='delete-btn'><i class='material-icons'>delete</i></button>"+" "+
                                          "</div></td></tr>");
        });
    

    为孩子改变

    rootRef.on("child_changed", snap => {
    
          var assetKey = snap.child("id").val();
          var name = snap.child("name").val();
          var brand = snap.child("brand").val();
          editrow = "row"+assetKey;
    
          document.getElementById("editrow").innerHTML = "<td class='mdl-data-table__cell--non-numeric'>" + name + "</td>" +
                                  "<td class='mdl-data-table__cell--non-numeric'>" + brand + "</td>" +
    
                                  "<td class='mdl-data-table__cell--non-numeric'><div buttons>"+
                                          "<button class='delete-btn'><i class='material-icons'>delete</i></button>"+" "+
                                          "</div></td>");
        });
    

    这会有所帮助。

    【讨论】:

    • 对不起,回答迟了,但是当我将data-id 更改为id 时,我发现了一个问题,因为我目前在删除按钮上使用data-id,当我改成id,就停止工作了……删除按钮代码如下:pastebin.com/YGvK1mhT
    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 2019-03-03
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    相关资源
    最近更新 更多