我目前正在尝试使用Firebase从我的Javascript应用中的列表中删除单个项目,而且我目前遇到了很多困难。下面的代码只是它的一个非常简化的版本。
var itemList = document.getElementById("itemList");
window.onload = function () {
queryData();
}
function queryData() {
return databaseRef.on('child_added', function (snapshot) {
itemList.innerHTML +=
"<li>"
+ snapshot.child("title").val() + " " +
<!-- This is the code where I'm trying to delete -->
"<a href='#itemList' onclick='deleteItem("+snapshot.key+")'>Delete</a>" +
"</li><br/>";
});
}
function deleteItem(itemToDelete) {
//Just using console.log to make sure each key is being referenced
console.log(itemToDelete);
}
当我选择“删除”时,它会识别出我想要的密钥。链接但返回错误:
未捕获的ReferenceError:未定义KfMB_sYMvARj1apJwST。
我尝试过使用appendChild()来添加标识符但没有成功。这看起来像是:
snapshot.key.appendChild(identfier);
其中identifier只是一个从0开始的变量,并循环遍历for循环中的每个项目。这引发了Firebase.js中的错误,我猜这是因为它试图异步执行此操作所以我先将键存储在数组中,然后尝试使用appendChild()添加到数组中的每个项目但得到了相同的错误回来了。我已经看过这类应用程序的视频是在iOS,Angular,Android中构建的,但我似乎无法找到任何原生的javascript解决方案来使其工作或成功调整其他语言的解决方案。 / p>
我在使用Javascript进行编码时仍然是一个业余爱好者,而我可以创建一个离线列表应用,并且可以添加/编辑/删除足够简单 - 对来自Firebase的数据执行相同操作时感觉非常混乱。任何帮助将非常感谢!