页面中的表单常常会有校验某些字段的须要,惯例的写法是prop和表单的字段名统一即可,然而表单的数据格式可能会很简单,如果 某个字段有多级嵌套,那咱们该如何正确的写prop呢,上面的三种状况中,我别离介绍如何设置prop属性能力正确的校验name字段。
惯例写法
这种状况咱们只须要设置prop为name即可
<el-form-item prop="name"> <el-input v-model="form.name"></el-input></el-form-item>form: { name: '', sex: '', age: ''}
对象嵌套写法
如果校验的字段是二级属性,那么prop从一级属性user_info开始
<el-form-item prop="user_info.name"> <el-input v-model="form.user_info.name"></el-input></el-form-item>form: { user_info: { name: '', sex: '', age: '' }}
数组嵌套写法
如果校验的字段是数据外面的某一项的某个字段,咱们须要从user_info开始,而后跟上数组的索引,最初再加上须要校验的字段
<el-form-item v-for="(info, index) in form.user_info" :prop="'user_info.' + index + '.name'"> <el-input v-model="info.name"></el-input></el-form-item>form: { user_info: [ { name: '', sex: '', age: '' }, { name: '', sex: '', age: '' } ]}
总结:el-form-item上的属性prop字段,必须是其父级组件el-form中绑定model字段中的一个间接子属性。比方某个字段咱们能够通过this.form.user_info[0].name获取到,那么咱们就须要设置prop为user_info[0].name,这样就能够增加校验规定了,其余嵌套状况也一样。