拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何在下拉串列中显示具有所选值的物件

如何在下拉串列中显示具有所选值的物件

白鹭 - 2022-02-10 1973 0 0

我创建了如下所示的物件:

export default {
    data() {
        return {
            language: {
                "en": {
                    welcomeMsg: "Welcome to New York City"
                },
                "de": {
                    welcomeMsg: "Wilkommen New York Stadt"
                }
            },
        };
    },
};

我有一个下拉选单,下拉选单中选择的变量是“lang”。所以当我运行这段代码时:

<h6 v-for="l in language">
    <div>{{ l.welcomeMsg }}</div>
    <div>{{lang}}</div>
</h6>

显示是这样的:Welcome to New York City Wilkommen New York Stadt en en (下拉选单中选择的值是 en,因此它是“en”)

我想要实作的是,我想将 if 状态放入 h6 标记中,我只想在下拉串列中显示选定的值。例如,如果'lang' 是'en',它应该显示welcomeMsg,即“欢迎来到纽约市”。如果是de,则另一个。

你能帮我解决这个问题吗?你认为我创建的物件错了吗?

uj5u.com热心网友回复:

您可以通过所选值简单地访问语言物件

<h6>{{ language[lang]['welcomeMsg'] }}</h6>

在这里观看演示

uj5u.com热心网友回复:

建议:尝试使用vue-I18n插件轻松地将本地化功能集成到您的 Vue.js 应用程序中。

根据 OP 的作业演示

new Vue({
  el: '#app',
  data: {
    language: {
      "en": {
        welcomeMsg: "Welcome to New York City"
      },
      "de": {
        welcomeMsg: "Wilkommen New York Stadt"
      }
    },
    selectedLang: '',
    updatedMsg: ''
  },
    methods: {
        updateWelcomeMsg(event) {
                this.updatedMsg = this.language[event.target.value].welcomeMsg;
        }
    }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
<select name="lang" @change="updateWelcomeMsg($event)" v-model="selectedLang">
   <option value="en">EN</option>
   <option value="de">DE</option>
</select>

<div>{{updatedMsg}}</div>
</div>

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *