2017-08-31 57 views
0

我使用VeeValidate並完全適用於英語(這是默認值) 但是如果我嘗試使用我收到一個錯誤說 任何其他語言的「屬性‘區域設置’不上鍵入‘驗證’存在。」VeeValidate本土化「屬性‘區域設置’上輸入‘驗證’不存在」。

這裏是我的代碼:

import VeeValidate from 'vee-validate'; 
import french from 'vee-validate/dist/locale/fr'; 

Vue.use(VeeValidate); 

@Component 
export default class TestTest extends Vue { 
locale: any; // I have tried locale: string='fr'; 

nextLocale() { 
    return this.locale === 'en' ? 'French' : 'English'; 
} 

changeLocale() { 
    this.locale = this.$validator.locale === 'fr' ? 'en' : 'fr'; 
    this.$validator.setLocale(this.locale); 
}  

created() { 
    this.$validator.updateDictionary({ 
    fr: { 
    messages: french.messages, 
    } 
}) 
} 

// other none related code... 

} 
+1

在我看來,它是在[最新版本的類型]中定義的(https://github.com/baianat/vee-validate/blob/b916e2a28b7c4126fe26312babbc22e412a8c384/types/vee-validate.d.ts#L67.json )。你使用不同的版本? – Bert

+0

剛剛更新到最新版本,還是一樣... @Bert – misshomme

回答

1

據:
http://vee-validate.logaretm.com/localization.html#api

動態改變的語言環境中的組件,你必須調用本地化,像這樣

this.$validator.localize('fr', french) 

而且它應該只是正常工作(你不需要調用updateDictionary作爲呼叫上面已經這樣做了)