【发布时间】:2018-01-26 06:48:11
【问题描述】:
我正在尝试创建一个包含嵌套字段集合的 Vue 页面。 IE。父表单和可重复的子表单。
它的工作原理是删除子表单时,模板呈现不正确
请看我创建的小提琴示例 - https://jsfiddle.net/c4marcus/1mu2oceb/8/
样本数据包含披头士乐队的基本信息。如果您点击“Ringo”旁边的垃圾桶,则错误地“George”会消失,而不是“Ringo”。
但是,当您点击提交时,正在保存正确的数据(请参见下面的屏幕截图)。
我觉得问题一定出在MemberFormset vue 组件的remove 方法上,该方法是通过点击垃圾桶按钮触发的。
remove: function(index) {
this.members.splice(index, 1)
this.$emit('input', this.members)
},
拼接后,模板应使用新数据呈现表单数组。
<div class="form-group" v-for="(member, index) in members">
<member-form :model="member"
:index="index"
@input="update(index, $event)">
<div slot="trash">
<button type="button"
class="btn btn-default margin-top-md"
@click="remove(index)">
<i class="fa fa-trash"></i>
</button>
</div>
</member-form>
<hr v-if="separator(index)" />
</div>
【问题讨论】:
-
与其在小提琴中提供整个代码,不如尝试获得一个minimal reproducible example 来重现您的错误。不过我还是会试一试的
-
谢谢,我会尽快把它剪掉。
-
FWIW,有一把小提琴会让世界变得与众不同!谢谢你。
标签: javascript vue.js vuejs2 vue-component