2017-08-31 1 views
0

Ich benutze VeeValidate und funktioniert perfekt für Englisch (das ist Standard) aber wenn ich versuche, eine andere Sprache zu verwenden, bekomme ich eine Fehlermeldung, die "Property 'locale" gibt es nicht auf Typ' Validator '. "VeeValidate-Lokalisierung "Property 'locale' existiert nicht beim Typ 'Validator'."

Hier ist mein Code:

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

Sieht für mich wie es in der [neuesten Version der Typen] definiert ist (https://github.com/baianat/vee-validate/blob/b916e2a28b7c4126fe26312babbc22e412a8c384/types/vee-validate.d.ts#L67.json). Verwenden Sie eine andere Version? – Bert

+0

nur auf die neueste Version aktualisiert, immer noch das gleiche ... @ Bert – misshomme

Antwort

1

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

dynamisch Um die Locale in Ihrer Komponente zu ändern, müssen Sie

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

wie so lokalisieren nennen und Es sollte gut funktionieren (Sie müssen updateDictionary nicht aufrufen, da der obige Aufruf dies bereits tut)

Verwandte Themen