在POST成功回调后,Vuejs重置字段

时间:2017-07-08 23:09:51

标签: firebase vue.js vue-resource

我在POST请求后重置textarea字段时遇到一些问题。 这是我的组件代码

ng generate module Foo --routing

这是父组件

--routing

正如您在响应回调函数中看到的,我重置了task.taskContent值,但问题是字符串被发送到db而没有问题,而在根组件中没有更新,我有一个存储所有这些字符串的数组。 我正在考虑使用观察者,但我不知道它是否是一个好的解决方案,你有什么建议吗? 链接到github repo https://github.com/Polenj86/vue-taskmanager

1 个答案:

答案 0 :(得分:1)

现在已经发布了您的父组件,这一点很清楚。

您将task对象存储在父数组中。这不是任务的副本,它将成为您即将清除的相同任务的参考。因此,当您稍后设置this.task.taskContent = ''时,您也正在更改父数组中的任务。

考虑一下:

var task_holder_array = []
var task = {name: "mark"}
task_holder_array.push(task)

console.log("array before: ", task_holder_array)

task.name = ""

console.log("array after: ", task_holder_array)

您需要以某种方式创建一个新的任务对象以进入父数组。有很多方法可以做到这一点。例如:

this.$emit('taskWasCreated', {name: this.task.name});

或者您可以将任务名称字符串传递给父级,让父级创建对象。