Как удалить узел из FireBase с помощью кнопки HTML и функции JavaScript - PullRequest
0 голосов
/ 12 мая 2019

Это мои текущие данные: current output

Я не могу вызвать функцию JavaScript для удаления (). потому что моя кнопка добавлена ​​в html. мой онклик не работает

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)
      });
  }

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Вы можете использовать литералы шаблона ES6, когда добавляете свой HTML вместо кавычек и ссылаетесь на функцию, подобную этой.

И, кстати, функции, начинающиеся с заглавной буквы, обычно указывают, что функция является классом. Вы должны называть свои функции строчными буквами (функция Delete (ключ, uid) должна быть функцией delete (ключ, 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>`);
0 голосов
/ 12 мая 2019

Проблема в этой строке:

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

Поэтому вместо использования, пожалуйста, замените ее на:

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

Это будет работать наверняка, потому что теперь мы фактически предоставляем ему значение, одновременно предоставляя ссылку на переменную deleteRef.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...