将表中的条目从数据库中删除后,我已经能够从表中删除它们,并且一旦对其进行了编辑,就可以添加表中的条目。 how to check if data is already in html table using firebase real time database? 我现在正在寻找如何查找数据库的实时更改。
var database = firebase.database().ref().child('transactions');
database.on('child_added', function(snapshot){
var data = snapshot.val();
var content = '<tr id="'+snapshot.key+'">';
content += '<td>' + data.CustomerName + '</td>';//column2
content += '<td>' + data.TimeEffected + '</td>'; //column1
content += '<td>' + data.DateEffected + '</td>'; //column1
content += '<td>' + data.Successful + '</td>'; //column1
content += '</tr>';
$('#ex-table').append(content);
database.on('child_removed', function(snapshot){
$('#'+snapshot.key).remove()
});
});
我尝试使用这个:
database.on('child_changed', function(snapshot){
$('#'+snapshot.key).change()
});
我尝试将其置于remove方法下,但未成功。
答案 0 :(得分:2)
$('#'+snapshot.key)
在HTML中获得了正确的元素,但是jQuery's change()
method并没有按照您的想象做。阅读链接的文档以了解其实际作用。
如果您想一下这是否有意义:jQuery的内置方法如何知道如何更新HTML结构?
只有您的代码知道它为快照中的数据创建了什么HTML。您将需要将在child_added
回调中创建HTML的代码(部分)复制到child_changed
回调中。
类似这样的东西:
database.on('child_changed', function(snapshot){
var data = snapshot.val();
var content = '<tr id="'+snapshot.key+'">';
content += '<td>' + data.CustomerName + '</td>';//column2
content += '<td>' + data.TimeEffected + '</td>'; //column1
content += '<td>' + data.DateEffected + '</td>'; //column1
content += '<td>' + data.Successful + '</td>'; //column1
content += '</tr>';
$('#'+snapshot.key).replaceWith(content)
});