0

这是我当前的网络数据: 电流输出

我不能为 delete() 调用我的 JavaScript 函数。因为我的按钮附加在 html 中。我的 onclick 不起作用

var query = firebase.database().ref("Feedback").orderByKey();
query.once("value")
    .then(function(snapshot) {
        snapshot.forEach(function(feedbackSnapshot) {
           var uid = feedbackSnapshot.key;
            feedbackSnapshot.forEach(function(childSnapshot) {
                var key = childSnapshot.key;
                var TicketNo = childSnapshot.child("feedID").val();
                var Subject = childSnapshot.child("feedSubject").val();
                var Message = childSnapshot.child("feedMessage").val();
                var deleteRef = "Delete(key,uid)";
                            
                $("#feedback_table").append(
                    "<tr><td>"+Message+"</td><td>"+Subject+"</td><td>"+TicketNo
                    +"</td><td><button onclick="+deleteRef+">Remove</button></td><td style='display:none;'>"+uid
                    +"</td><td style='display:none;'>"+key+"</td></tr>");
            });
    });
});

这是我的删除功能:

  function Delete(key,uid){
      var feedRef = firebase.database.ref("Feedback").child(uid).child(key);
      feedRef.remove()
      .then(function(){
        console.log("Remove succeeded.")
      })
      .catch(function(error){
        console.log("Remove Failed!"+error.message)
      });
  }
4

2 回答 2

0

问题出在这一行:

var deleteRef = "Delete(key,uid)";

因此,请不要使用它,而是将其替换为:

var deleteRef = "删除("+key+","+uid+")";

它肯定会起作用,因为现在我们实际上是在为其提供对 deleteRef 变量的引用的同时为其提供值。

于 2019-05-12T06:51:47.377 回答
0

当您附加 HTML 而不是引号并像这样引用函数时,您可以使用 ES6 模板文字。

顺便说一句,以大写字母开头的函数通常表示该函数是一个类。你应该用小写命名你的函数(函数删除(键,uid)应该是函数删除(键,uid))

$("#feedback_table").append(
`<tr><td>${Message}</td><td>${Subject}</td><td>${TicketNo}
</td><td><button onclick="delete(${key}, ${uid} );">Remove</button></td>
<td style='display:none;'> uid </td><td style='display:none;'>${i}</td></tr>`);
于 2019-05-12T19:34:58.293 回答