【问题标题】:Loop in NuxtJS (Vue) outputs wrong dataNuxtJS (Vue) 中的循环输出错误数据
【发布时间】:2021-08-24 01:39:05
【问题描述】:

我有以下数据:

export const myData = [
{
    id: 1,
    lang: "it",
    items: [
        {
            id: 1,
            title: "IT Page1",
        },
        {
            id: 2,
            title: "IT Page2",
        },
        {
            id: 3,
            title: "IT Page3",
        }
    ]
},
{
    id: 2,
    lang: "en",
    items: [
        {
            id: 1,
            title: "EN Page1",
        },
        {
            id: 2,
            title: "EN Page2",
        },
        {
            id: 3,
            title: "EN Page3",
        }
    ]
}
]

我的循环执行以下操作:

<ul v-for="(item, i) in myData" :key="i">
  <li>{{ item.items[i].title }}</li>
</ul>

仅输出:

IT Page1
EN Page2

但是(上面的循环)应该输出两种语言的所有数据,对吧?另外,我如何选择语言(静态或动态)?

【问题讨论】:

    标签: javascript typescript loops vue.js nuxt.js


    【解决方案1】:

    您应该创建两个循环并使用v-if 有条件地呈现所选语言:

    <div v-for="(item, i) in myData" :key="i">
     <template v-if="item.lang==='it'"> 
      <ul v-for="(subItem, j) in item.items" :key="j">
         <li>{{ subItem.title }}</li>
      </ul>
    </template>
    </div>
    

    【讨论】:

    • 不客气,选择语言是什么意思?
    • @mam 代码高亮?通常你可以试试“3个反引号”和+htmljs。如果您想编辑并检查如何实现它,我已经编辑了您最初的问题。
    • @Boussadjra Brahim,我的意思是 if lang === "it" 只显示该语言的项目。
    猜你喜欢
    • 2017-12-02
    • 2021-10-10
    • 2019-08-29
    • 2023-03-15
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多