通过axios call

时间:2017-09-16 12:41:12

标签: javascript vue.js

我想通过api调用我的后端应用程序来获取我的翻译消息。在then来电的axios回调中,我想设置消息。

然而,问题似乎是VueRouter已经使用空翻译初始化,并且没有从then回调中重新加载新的。

我有办法实现这个目标吗?

我试过了:

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, 
});

在消息完全设置之前调用new VueI18n时,这不起作用。

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

这也不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

找到解决方案,我不需要指定语言环境,因为它是setLocaleMessage的第一个参数。

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

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