首先,请原谅这个可怕的代码(我们现在没有时间修复)。我知道eval
是可怕的,但就我们的目的而言,它是唯一对我们这么容易奏效的东西。
我们是这样添加和删除行的:
methods: {
addRow: function() {
let lastRow = eval(`this.$parent.json${this.path}[this.$parent.json${this.path}.length - 1]`);
lastRow = Object.assign({}, lastRow);
eval(`this.$parent.json${this.path}.push(lastRow)`);
this.$forceUpdate();
},
removeRow: function(index) {
//eval(`this.$parent.json${this.path}.splice(index, 1)`);
eval(`Vue.delete(this.$parent.json${this.path}, index)`);
this.$forceUpdate();
}
https://jsfiddle.net/00e58as4/10/6
若要重新创建该问题,请添加一行。然后,更改新行上的文本。尝试删除第二行到最后一行-注意它如何没有被删除,但最后一行是。但是,如果您检查json-调试(它是后端数据的活动视图),您将看到正确的行被删除了!
这一切为什么要发生?为什么UI和后端不同步?
发布于 2017-05-18 00:01:44
在使用钥匙进行迭代时,应该始终使用v-for
。试着加一个这样的。
<div class = "well" v-for = "item, index in items" :key="item">
https://stackoverflow.com/questions/44035837
复制相似问题