data-vv-是否在更改值后更新了一步?

时间:2018-12-05 08:53:11

标签: vue.js localization vee-validate

我在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>

输出

enter image description here

0 个答案:

没有答案