我在data-vv-as
中遇到了Vee-Validator
的问题:
我使用Localize和i18n用两种语言(高棉语和英语)构建了一个应用程序。当我单击更改语言时,我不想看到first_name
作为必需的错误消息。因此,我使用data-vv-as
来命名为First Name,然后希望它同时切换高棉语和英语。统计后,它可以正确翻译,但是当我第一次单击更改语言时,它不能翻译。
然后,当我第二次单击它时,它将开始翻译并最终翻译两种语言。
代码
import VueI18n from 'vue-i18n'
import messages from './locales'
Vue.use(VueI18n)
const locale = localStorage.getItem('locale') || 'en'
const i18n = new VueI18n({
locale: locale, // set locale
messages, // set locales
})
import VeeValidate, { Validator } from 'vee-validate'
import enValidationMessages from 'vee-validate/dist/locale/en'
import khValidationMessages from 'vee-validate/dist/locale/kh'
Vue.use(VeeValidate,
{
i18n,
dictionary: {
en: enValidationMessages,
kh: khValidationMessages
}
})
html代码:
<div class="form-group row ">
<label for="first_name" class="col-sm-4 col-form-label">{{ $t("label.first_name") }}</label>
<div class="col-sm-8">
<input v-model="owner.first_name" v-validate="'required|alpha'" :data-vv-as="$t('label.first_name')"
v-bind:class="{ 'is-invalid' : errors.has('first_name')}" v-bind:placeholder="$t('label.first_name')" name="first_name"
id="first_name" type="text" class="form-control" />
<span class="text-danger mt-4" v-show="errors.has('first_name')">{{ errors.first('first_name') }}</span>
</div>
</div>
输出