我正在使用 VUEJS 构建单页应用程序。我有一个文件组件,它从 API(使用 Axios)获取一些数据并用于v-for
呈现如下列表:
<template>
<div>
<ul>
<li v-for="division in divisions" :key="division.id_PK">
{{ division.c6code }} - XXX
</li>
</ul>
</div>
</template>
props: {
country: {
type: Object,
required: true
}
},
data() {
return {
divisions: [],
},
methods: {
async getDivisions() {
const divisions = await APIService.getDivisions(
this.country.igpeSID_FK
)
this.divisions = divisions
},
}
API 数据源的示例如下所示/getDivisions/800001
:
{
"status": 200,
"data": [
{
"id_PK": 205891,
"igpeSID_FK": 800001,
"c6code": "AB-CDE"
},
{
"id_PK": 205890,
"igpeSID_FK": 800001,
"c6code": "FG-HIJ"
},
{
"id_PK": 205889,
"igpeSID_FK": 800001,
"c6code": "KL-MNO"
},
{
"id_PK": 205888,
"igpeSID_FK": 800001,
"c6code": "PQ-RST"
},
{
"id_PK": 205887,
"igpeSID_FK": 800001,
"c6code": "WX-YZA"
}
]
}
渲染的 UI 如下所示:
现在,还有另一个 API 端点,其中包含我需要用来代替上面显示的“XXX”占位符的其他数据。该附加数据源有一个名为的属性name
,其中包含未包含在/getDivisions
API 中的实际部门名称(仅id_PK
提供关联的属性)。
问题:我怎样才能得到每个部门的这个名字?
包含附加数据的此端点的一个示例是:我需要从上面显示的 getDivisions 数据中传递给它的参数/getDivisionNameById/{id_PK}
在哪里。id_PK
因此,例如,如果我传递205891
给/getDivisionNameById/205891
我会得到如下所示的数据:
示例/getDivisionNamesById/205891
:
{
"status": 200,
"data": [
{
"P_uniqueID": 16919,
"isoGeoDivisionEntry_FK": 205891,
"name": "ZABUL",
"lang": "fa"
},
{
"P_uniqueID": 16918,
"isoGeoDivisionEntry_FK": 205891,
"name": "ZABUL",
"lang": "ps"
}
]
}
v-for
我在想我需要创建一个函数,它以某种方式创建一个新的名称数组,然后我可以在我的原始模板中循环遍历另一个名称,如下所示:
<li v-for="division in divisions" :key="division.id_PK">
{{ division.c6code }} - <span v-for="divName in divisionNames" :key="division.id_PK">{{divName.name}}</span>
</li>
async getDivisionNameById(id_PK) {
const name = await APIService.getDivisionNameById(id_PK)
this.divNames.push(name)
}
显然,我不知道我在那里做什么......
带有数据的代码沙盒:
https://codesandbox.io/s/intelligent-wind-21w35?file=/src/getDivisionNamesById.json