循环在vue js中像在php foreach中获取html表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环在vue js中像在php foreach中获取html表相关的知识,希望对你有一定的参考价值。
我有这样的对象数组
types:[
{ name:"Twin/Double", rooms:[{id:4}, {id:5}] },
{ name:"Twin/Double", rooms:[{id:2}, {id:3}] },
{ name:"Twin/Double", rooms:[{id:6}, {id:7}] },
];
所以我想在vue.js中循环它们,就像在表格中的php foreach循环一样,得到这样的结果。
PHP循环。
<table v-for="type in rooms">
<tbody>
@foreach($types as $type)
<tr>
<td>{{ type->name }}</td>
</tr>
@foreach($type->rooms as $room)
<tr>{{ $room->id }}
@endforeach
@endforeach
</tbody>
</table>
但是在vue.js v-for指令中,我不能这样做,我尝试这样的事情。
Vue循环。
<tbody>
<div v-for="type in rooms">
<tr>
<td>{{ type.name }}</td>
</tr>
<tr v-for="room in type.rooms">{{ room.id }}</tr>
</div>
</tbody>
但是我的桌子结构已经破了。我想得到完全像这样的结构。
html表结果
<tbody>
<tr>
<td>Twin/Double</td>
</tr>
<tr>
<td>Room - 4</td>
</tr>
<tr>
<td>Room - 5</td>
</tr>
<tr>
<td>Triple</td>
</tr>
<tr>
<td>Room - 2</td>
</tr>
<tr>
<td>Room - 3</td>
</tr>
<tr>
<td>Family</td>
</tr>
<tr>
<td>Room - 6</td>
</tr>
<tr>
<td>Room - 7</td>
</tr>
请帮我
答案
所以看起来Vamsi在技术上已经给出了解决方案,但标记需要在房间ID周围额外加上<td></td>
。
<template>
<table>
<tbody>
<template v-for="type in types">
<tr>
<td>{{ type.name }}</td>
</tr>
<tr v-for="room in type.rooms">
<td>Room - {{ room.id }}</td>
</tr>
</template>
</tbody>
</table>
</template>
<script>
export default {
data() {
return {
types:[
{ name:"Twin/Double", rooms:[{id:4}, {id:5}] },
{ name:"Triple", rooms:[{id:2}, {id:3}] },
{ name:"Family", rooms:[{id:6}, {id:7}] },
]
}
}
}
</script>
<style>
tr, td {
border: 1px solid #ddd;
padding: 1.314em;
}
</style>
另一答案
只需使用<template>
标记而不是<div>
进行循环,以便不破坏表结构:
<tbody>
<template v-for="type in rooms">
<tr>
<td>{{ type.name }}</td>
</tr>
<tr v-for="room in type.rooms">{{ room.id }}</tr>
</template>
</tbody>
<template>
标签不会被渲染,但它的子节点将被渲染。您可以将<template>
标记视为占位符
以上是关于循环在vue js中像在php foreach中获取html表的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中像在 Google 地图中一样获得持续的位置更新?