laravel - 如何动态观察和设置变量?
问题描述
嗨,这是我在 StackOverflow 上的第一篇文章。
我正在努力动态翻译一个网站。我正在使用包vuejs-localization
。如何直接切换语言?
我正在使用最新版本的 VueJS 和 Laravel。
这是我的语言选择器上的代码:
export default {
name: "LanguageDropDown",
data() {
return {
languages: [
{
lang: "fr",
text: "Français",
icon: "fr",
},
{
lang: "gb",
text: "English",
icon: "gb",
},
{
lang: "us",
text: "US",
icon: "us"
},
],
};
},
computed: {
getCurrentLang: function() {
return this.$lang.getLang();
},
},
methods: {
setLanguage(lang) {
this.$root.$emit("setLang", lang);
},
setLang(lang, index) {
this.$root.$emit("setLang", this.languages[index].languages[lang], index);
},
},
};
这就是我的 App.js 中的内容:
const app = new Vue({
el: '#app',
router,
data() {
return {
lang: 'fr'
};
},
created() {
this.$lang.setLang( this.lang );
},
mounted() {
let _this = this;
this.$root.$on( 'setLang', function( lang ){
_this.lang = lang ;
console.log(_this.lang);
});
},
watch: {
lang :{
handler(val){
this.lang = val;
console.log('changed to :' + this.lang);
},
},
},
})
我希望通过将变量 'fr' 更改为 'us' 或 'gb' 来进行翻译,但日志说 lang 正在切换,但没有发生任何事情......
谢谢你的帮助。
解决方案
要更改语言,您需要调用this.$lang.setLang
. 你可以在手表里做
watch: {
lang :{
handler(val){
this.lang = val;
this.$lang.setLang(val)
console.log('changed to :' + this.lang);
},
},
},
推荐阅读
- python - 如何使用硒从列表中选择一个项目?
- javascript - 在 Javascript Promise 中返回 'resolve' 函数
- ios - 故事板文件更改后如何获取新的本地化字符串
- c# - 使用 FirefoxDriver 获取页面源
- java - 如何在 Kotlin 中使用 Lambda handleHeavyContent()
- android - 更新 chrome 版本 76 后 android 应用程序崩溃
- join - spring-data-elasticsearch es6.7.2 保存子抛出异常:连接字段缺少路由
- python - 如何一次请求多个链接并稍后用scrapy解析它们?
- c++ - 在 C++17 和 emplace_back(...) 中保证复制省略
- linux - 获取映射共享内存的大小