Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对oop使用删除事件侦听器_Javascript_Firebase_Firebase Realtime Database_Dom Events - Fatal编程技术网

Javascript 对oop使用删除事件侦听器

Javascript 对oop使用删除事件侦听器,javascript,firebase,firebase-realtime-database,dom-events,Javascript,Firebase,Firebase Realtime Database,Dom Events,我有一个使用Firebase实时数据库更新内容的按钮。我用一个按钮来更新我的每个内容。因此,我的第一个更新工作正常,但当我想通过第二个内容进行更新时,它会使用我以前的内容进行更新。我想在每次更新后删除该事件。这样,每个内容的更新将正常工作。你能帮我弄清楚怎么做吗 这就是我的更新按钮的作用。更新后,我想删除click事件,直到再次单击为止 addUpdatedTodoToFirebase(todoKey) { console.log(todoKey) // key used for eac

我有一个使用Firebase实时数据库更新内容的按钮。我用一个按钮来更新我的每个内容。因此,我的第一个更新工作正常,但当我想通过第二个内容进行更新时,它会使用我以前的内容进行更新。我想在每次更新后删除该事件。这样,每个内容的更新将正常工作。你能帮我弄清楚怎么做吗

这就是我的更新按钮的作用。更新后,我想删除click事件,直到再次单击为止

  addUpdatedTodoToFirebase(todoKey) {
  console.log(todoKey) // key used for each todo
  if (todoKey) {
    this.updateTodo.addEventListener("click", () => {
      firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
        action: this.selectAction.value,
        date: this.selectDate.value,
        title: this.inputTitle.value,
        description: this.inputDescription.value
      })
    })
  }
}

如果要从DOM中删除事件侦听器,可以使用以下方法:

let listener = () => {
  firebase.database().ref(`users/${this.currentUser}`).child("todos").child(todoKey).update({
    action: this.selectAction.value,
    date: this.selectDate.value,
    title: this.inputTitle.value,
    description: this.inputDescription.value
  }).then(() => {
    this.updateTodo.removeEventListener("click", listener);
  });
})
this.updateTodo.addEventListener("click", listener);

数据库更新完成后,上述代码将删除侦听器。

非常感谢,Frank!我就知道你会看到:)你绝对是我们的救星!