一个简单的Todo-App。对于我提出这样一个基本的问题,请原谅我的无知。
但是,您如何编辑数组中的某个项目呢?
通常,我会尝试将输入框的值绑定到数据对象上的新属性,并通过Vue的双向数据绑定在单击时将此新属性分配给旧属性。
像这样:http://jsfiddle.net/z7960up7/
但在我的情况下,我使用了v-repeat指令,它循环遍历我的数据数组,但如果我使用v-model指令来使用双向数据绑定,则属性的值会被破坏。 (请参见此处:http://jsfiddle.net/doL46etq/2/)
现在我想知道,如何更新我的任务数组:
我的想法是,在单击时通过方法传递VueObject(this),然后在我的事件处理程序中定义索引,然后使用索引更新任务数组,如下所示:
HTML:
<input v-el="editInputField" type="text" value="{{ task.body }}" v-on="keyup: doneEdit(this) | key 'enter'"/>
<button v-on="click: editTask(this)">
Edit
</button>
JS:
methods: {
editTask: function (task) {
var taskIndex = this.tasks.indexOf(task.task);
this.tasks[taskIndex] = {
'body': document.querySelector('input').value,
'completed': false
};
console.log(task.task.body);
},
}
这是一个关于此的示例: 但数据对象根本没有更新,我想知道如何更新它。使用Vue编辑数组元素的最佳方法是什么?编辑:一种简单的方法是删除元素,并使用push方法将新元素添加到数组中,但我真的想只更新元素,因为我希望将数据对象与后端保持同步。