Vue JS:循环通过对象内联属性

Posted

技术标签:

【中文标题】Vue JS:循环通过对象内联属性【英文标题】:Vue JS: Looping through object inline attribute 【发布时间】:2021-04-07 02:25:12 【问题描述】:

我是 vue.js 的新手,所以这可能是一个简单的问题,但不幸的是我自己没有得出结果。

所以这是我的模板的基础:

<template v-for="page in $props.data.pageInfo" >
  <div class="overviewItem" :key="page.uid" :data-cat=" **looping through the object to get both cat_id's ** ">
    <div v-for="(cat, index) in page.categories" :key="index" >
      <p v-if="index === 0" class="subtitle">
         cat.title 
      </p>
    </div>
  </div>
</template>

page.categories 在第一个 .overviewItem 处具有以下值:

[

  "cat_id": 1,
  "title": "Kategorie 1"
,

  "cat_id": 2,
  "title": "Kategorie 2"

]

获取字幕的循环工作得很好,但是我找不到任何关于如何循环这个对象的选项,以便我得到 data-cat 属性的两个值。

【问题讨论】:

删除&lt;p&gt; 上的v-if,它只允许渲染第一个项目并将data-cat 放在循环&lt;div&gt; 我需要数据猫在外面(在 .overviewItem 上)。在里面我实际上只希望显示第一个标题,这对我来说很好。 【参考方案1】:

使用.map 生成一个仅包含cat_id 的新数组,然后将它们连接在一起,中间有一个空格:

<div
   class="overviewItem"
   :key="page.uid"
   :data-cat="page.categories.map(c => c.cat_id).join(' ')"
>
...
</div>

【讨论】:

以上是关于Vue JS:循环通过对象内联属性的主要内容,如果未能解决你的问题,请参考以下文章

带有 v-for 的 Vue 内联模板 - 未定义

Vue 2.x 计算属性在其依赖项与内联数据绑定时不会更新

JS获取内联样式

在列表中使用内联for循环并在python中平展结果的最佳方法[重复]

v-bind指令动态绑定内联样式(style)

如何将 nonce 属性随机 id 与内联 JavaScript 关联