我正在构建一个表单,vue
并且bootstrap-vue
在vuelidate
输入上使用此代码,一切都按预期工作:
<b-form-group id="company-group"
label="Your company:"
label-for="company">
<b-form-input id="company"
type="text"
v-model="form.company"
@input="$v.form.company.$touch()"
v-bind:class="{ 'is-invalid': $v.form.company.$error }"
>
</b-form-input>
<b-form-invalid-feedback>
Invalid company name!
</b-form-invalid-feedback>
想法是公司名称的用户值存储在form.company
并使用验证vuelidate
。
如果存在验证错误vuelidate
,则将引导类添加is-invalid
到输入中,使其变为红色。这个逻辑工作正常,但是它是重复的,因为我必须设置id
,v-model
和基本上相同的东西:@input
v-bind:class
id="company"
v-model="form.company"
@input="$v.form.company.$touch()"
v-bind:class="{ 'is-invalid': $v.form.company.$error }"
有没有办法v-model
,@input
并v-bind:class
使用这样的值id
:
id="company"
v-model="form[this.id]"
@input="$v.form.[this.id].$touch()"
v-bind:class="{ 'is-invalid': $v.form.[this.id].$error }"
这将使表单构建变得更加容易,但是正如我预期的那样它不起作用。
谢谢你。