el-form重置动态表单formData中的引用类型数据的属性值

163 阅读1分钟

el-form重置动态表单formData中的引用类型数据的属性值

背景:在项目开发中遇到了动态添加表单项的需求,就是表单项可以根据需要进行增减。并且一添加就是好几个表单项的那种,于是我便将这几个表单项组成一组(一个对象 {key: value} )放到一个数组里边([{ key: value }, ...]),那么最终的formData的结构就是这样:

formData: {
    formItemArray: [
        {
            name: '',
            age: '',
            gender: ''
        },
        ...
    ]
}

模板中是这样去渲染表单的:

<el-row v-for="(item, index) in formItemArray" :key="index">
    <el-form-item>
        <el-input v-model="item.name"></el-input>
    </el-form-item>
    <el-form-item>
        <el-input v-model="item.age"></el-input>
    </el-form-item>
    <el-form-item>
        <el-select v-model="item.gender">
            <el-option v-for="option in [{ value: 1, label: '男' }, { value: 0, label: '女' }]"  
            :key="option.value" 
            :label="option.label" 
            :value="option.value"></el-option>
        </el-select>
    </el-form-item>
</el-row>

重置的方法:

Vue2:

this.formData.formItemArray = this.$options.data().formItemArray
属性说明
$options可以拿到当前组件实例的初始状态,data中的数据等等都是初始的