javascript - 如何使用 v-for 遍历元素
问题描述
在对 API 响应进行一些初始迭代后,我在控制台中返回了 48 个对象作为item
. 我将其传递给 Vue 数据作为nameModules
.
迭代代码如下:
for (const item of result.application.modules.module.moduleItem) {
console.log(item)
let returnedNames = item;
this.nameModules = returnedNames;
}
Vue数据:
data: function() {
return {
nameModules: []
}
}
当我像下面这样使用 v-for 时,我只得到id
最后一个元素加上四个空的DIVs
<div v-for="nameModule in nameModules" :key="nameModule._attributes" class="col-12">
<h1>{{ nameModule.id }}</h1>
<p class="no-mar-bot">
Hier finden Sie alle SGUM- zertifizierten Kurse. Nutzen Sie die Suchfunktionen.
Details finden Sie in der Auswahl der Treffer.
</p>
</div>
我尝试了许多不同的组合来渲染ID
每 48 个元素中的一个,并进一步渲染name
位于 array 中的那个dataField[].value._text
,但没有运气。任何帮助都会很棒。
这就是它在控制台中的外观。
console.log(item)
给出 48 个对象:
我正在尝试获取和的红色id
值_text
这就是它的渲染方式。只有id
最后一个对象和空 DIV。
控制台返回两个 Vue 警告
[Vue warn]: Avoid using non-primitive value as key, use string/number value instead.
和
[Vue warn]: Duplicate keys detected: '[object Object]'. This may cause an update error.
但这对我最终确定我想要实现的目标没有多大帮助。
更新
我已经取得了一些进展,并在控制台中返回了名称,如下面的屏幕所示。
我用这个代码来拥有它
for (const item of result.application.modules.module.moduleItem) {
let returnedNames = item.dataField.value._text;
this.nameModules = returnedNames;
}
但我仍然无法通过 v-for 渲染它。当我使用下面的代码时,屏幕上的每个元素都有空 div。
<div v-for="(nameModule, index) in nameModules" :key="index" class="col-12">
<h1>{{ nameModule._text }}</h1>
<p class="no-mar-bot">
Hier finden Sie alle SGUM- zertifizierten Kurse. Nutzen Sie die Suchfunktionen.
Details finden Sie in der Auswahl der Treffer.
</p>
</div>
解决方案
您正在使用一个对象作为您的密钥,这导致了错误。由于该key
值始终应为字符串,因此每次看到一个对象时,它将替换该循环中的最后一项(用 key [object Object]
,因为它是非原始值),而您只会看到一个。
如果您希望更改项目,请考虑使用nameModule._attributes.id
作为您的密钥。
<div v-for="nameModule in nameModules" :key="nameModule._attributes.id" class="col-12">
请注意,如果您没有_attributes
附加到这些模块之一,它将隐藏整个循环。
您还可以使用循环的索引:
<div v-for="(nameModule, index) in nameModules" class="col-12">
只要您不与循环中的任何元素进行交互,就可以使用索引。但是,如果你是,那么建议不要这样做。
推荐阅读
- machine-learning - 关于一种新型置信区间的问题
- javascript - Ajax 发送数据并获得响应,但不准确
- awesome-wm - 如何在 awesome-wm 中剪切由`:layout` 方法绘制的区域?
- excel - 将 Teradata SQL 查询(带有列别名)动态传递给 ODBC 查询时出现 Expression.Error
- python - IMAP4 库语法
- javascript - 从特定页面删除侧抽屉
- heroku - 错误 403:您无权访问此服务器上的 /
- objective-c - 我应该在视图控制器中编写 NSTimer 代码还是使用委托/通知模式编写单独的类?
- erlang - 调试 hackney 请求
- java - 解析器适用于某些 ArrayList,抛出 Expected BEGIN_OBJECT 但对其他人来说是 STRING