Vue JS - 在不知道其名称的情况下循环遍历嵌套对象
Vue JS - Loop through nested object without knowing its name
我执行一个 axios 调用,其中 returns 以下(示例):
{
"data":{
"xyz":[
{
"foo":1234,
"baz":5678,
}
]
}
}
我的 axios 调用中有一个 .then()
,我使用 lodash 将 _.cloneDeep
我的 response.data
(上图)连接到我的 vue 实例中的数据 属性。
在不知道名称(可以不同)的情况下,在 xyz
上执行 v-for
的正确方法是什么?或者如何直接将 xyz
克隆到我的数据 属性?
要直接将 xyz
克隆到您的数据 属性,您可以这样做(假设 response.data
包含您在问题中提供的片段:
dataPropertyInVueInstance = response.data["data"][Object.keys(response.data["data"])[0]]
这会在 response.data["data"]
处获取第一个键(在本例中为 xyz
)并将数据从 response.data["data"]
中拉出,从而为您提供 [=12= 处的对象] 并避免命名问题。
你也可以这样做:
dataPropertyInVueInstance = Object.values(response.data["data"])[0]
这会获取 response.data["data"]
中第一个键的值——在本例中,是键 xyz
处的数据。
我很确定你可以嵌套 v-for:
<div v-for="(item,key) in data" :key="key">
<div v-for="(nestedItem, nestedKey) in item)" :key="nestedKey">
{{ nestedItem }}
</div>
</div>
我执行一个 axios 调用,其中 returns 以下(示例):
{
"data":{
"xyz":[
{
"foo":1234,
"baz":5678,
}
]
}
}
我的 axios 调用中有一个 .then()
,我使用 lodash 将 _.cloneDeep
我的 response.data
(上图)连接到我的 vue 实例中的数据 属性。
在不知道名称(可以不同)的情况下,在 xyz
上执行 v-for
的正确方法是什么?或者如何直接将 xyz
克隆到我的数据 属性?
要直接将 xyz
克隆到您的数据 属性,您可以这样做(假设 response.data
包含您在问题中提供的片段:
dataPropertyInVueInstance = response.data["data"][Object.keys(response.data["data"])[0]]
这会在 response.data["data"]
处获取第一个键(在本例中为 xyz
)并将数据从 response.data["data"]
中拉出,从而为您提供 [=12= 处的对象] 并避免命名问题。
你也可以这样做:
dataPropertyInVueInstance = Object.values(response.data["data"])[0]
这会获取 response.data["data"]
中第一个键的值——在本例中,是键 xyz
处的数据。
我很确定你可以嵌套 v-for:
<div v-for="(item,key) in data" :key="key">
<div v-for="(nestedItem, nestedKey) in item)" :key="nestedKey">
{{ nestedItem }}
</div>
</div>