2017-09-16 3 views
0

Ich möchte meine Übersetzung Nachrichten über einen API-Aufruf zu meinem Back-End-App abrufen. Im then Rückruf des axios Anrufs möchte ich die Nachrichten einstellen.Vue-Router-Nachrichten über Axios Anruf setzen

Das Problem scheint jedoch zu sein, dass VueRouter bereits mit den leeren Übersetzungen initialisiert ist und nicht mit den neuen aus dem then Callback neu geladen wird.

Gibt es eine Möglichkeit für mich, dies zu erreichen?

Ich habe versucht:

let messages = {}; 
window.axios.get(route('api.translation.translations.all')) 
    .then(response => { 
     messages = { 
      [currentLocale]: response.data, 
     } 
    }); 
console.log(messages); 

const i18n = new VueI18n({ 
    locale: currentLocale, 
    messages, 
}); 

Dies nicht als new VueI18n funktioniert, bevor Nachrichten aufgerufen wird, wird vollständig eingestellt.

window.axios.get(route('api.translation.translations.all')) 
    .then(response => { 
     messages = { 
      [currentLocale]: response.data, 
     }; 
     console.log(messages); 
     app.$i18n.setLocaleMessage('en', messages) 
    }); 

Dies funktioniert auch nicht.

Danke!

Antwort

0

Die Lösung gefunden, ich musste das Gebietsschema nicht angeben, da es das erste Argument von setLocaleMessage ist.

window.axios.get(route('api.translation.translations.all')) 
    .then(response => { 
     messages = response.data; 

     app.$i18n.setLocaleMessage(currentLocale, messages); 
    });