设置语言环境:Vue 未定义
Set locale: Vue is not defined
在我的 main.js 文件中,我注册了 Vue:
import Vue from 'vue';
import VueRouter from 'vue-router';
import VueResource from 'vue-resource';
import VueI18n from 'vue-i18n';
import App from './components/App.vue';
// Register plugins
Vue.use(VueResource);
Vue.use(VueRouter);
Vue.use(VueI18n);
// Create router
const router = new VueRouter({
history: true,
saveScrollPosition: true,
});
router.start({
components: { App },
}, 'body');
现在我想在我的 App.Vue 中获取翻译文件:
<script>
export default {
ready() {
/* Set Language */
Vue.locale('nl', function setLanguage() {
return this.$http({
url: '/src/language/nl_NL.js',
method: 'get',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
Vue.locale('nl', response);
Vue.config.lang = 'nl';
}).then(() => {
alert('Error');
});
});
},
};
</script>
我收到错误:'Vue' is not defined
。我做错了什么?
据我从您的代码中了解到,您的 Vue 应用程序是在您让 Vue 使用所有依赖项之前创建的。只有在完成所有这些 Vue.use(*) 之后,您才应该创建应用程序实例。它应该这样做。另外,最好在组件内部使用 this
来引用 Vue 的正确实例。在您的方法中,您可以 self = this
保护自己免受范围问题的影响。在子组件中,您可以使用 this.$root 来引用应用程序组件。希望对您有所帮助。
我的猜测是您在 App.vue
中缺少 vue 的导入语句,因为 vue 不会自动将其自身注入 vue 文件 AFAIK:
<script>
import Vue from 'vue'; // <--
export default {
ready() {
/* Set Language */
Vue.locale('nl', function setLanguage() {
return this.$http({
url: '/src/language/nl_NL.js',
method: 'get',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
Vue.locale('nl', response);
Vue.config.lang = 'nl';
}).then(() => {
alert('Error');
});
});
},
};
</script>
在我的 main.js 文件中,我注册了 Vue:
import Vue from 'vue';
import VueRouter from 'vue-router';
import VueResource from 'vue-resource';
import VueI18n from 'vue-i18n';
import App from './components/App.vue';
// Register plugins
Vue.use(VueResource);
Vue.use(VueRouter);
Vue.use(VueI18n);
// Create router
const router = new VueRouter({
history: true,
saveScrollPosition: true,
});
router.start({
components: { App },
}, 'body');
现在我想在我的 App.Vue 中获取翻译文件:
<script>
export default {
ready() {
/* Set Language */
Vue.locale('nl', function setLanguage() {
return this.$http({
url: '/src/language/nl_NL.js',
method: 'get',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
Vue.locale('nl', response);
Vue.config.lang = 'nl';
}).then(() => {
alert('Error');
});
});
},
};
</script>
我收到错误:'Vue' is not defined
。我做错了什么?
据我从您的代码中了解到,您的 Vue 应用程序是在您让 Vue 使用所有依赖项之前创建的。只有在完成所有这些 Vue.use(*) 之后,您才应该创建应用程序实例。它应该这样做。另外,最好在组件内部使用 this
来引用 Vue 的正确实例。在您的方法中,您可以 self = this
保护自己免受范围问题的影响。在子组件中,您可以使用 this.$root 来引用应用程序组件。希望对您有所帮助。
我的猜测是您在 App.vue
中缺少 vue 的导入语句,因为 vue 不会自动将其自身注入 vue 文件 AFAIK:
<script>
import Vue from 'vue'; // <--
export default {
ready() {
/* Set Language */
Vue.locale('nl', function setLanguage() {
return this.$http({
url: '/src/language/nl_NL.js',
method: 'get',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => {
Vue.locale('nl', response);
Vue.config.lang = 'nl';
}).then(() => {
alert('Error');
});
});
},
};
</script>