使用 ng-repeat 构建 table
using ng-repeat to build a table
我有这样的数据结构:
{
"Places to visit": {
"Best": [
"place1",
"place2"
],
"Worst": [
"place3",
"place4"
]
},
"Cuisines": {
"Best": [
"cuisine1",
"cuisine2"
],
"Worst": [
"cuisine3",
"cuisine4"
]
},
"Mobiles": {
"Best": [
"mobile1",
"mobile2"
],
"Worst": [
"mobile3",
"mobile4"
]
}
}
使用此数据结构,我需要在 UI 中构建一个 table,它应该如下所示(一行中有 2 个指标)。
我不知道如何在此数据结构上使用 ng-repeat 来获得所需的 table。
TIA。
如果你想使用 html table,你需要重新格式化你的数据,并且可能想要使用允许多个元素的 ng-repeat-start
和 ng-repeat-end
对于数组中的单个项目。
例如,'row' 的数据将有 a
的景点和 b
的美食:
<table>
<thead>
<tr>
<th> </th><th>best</th><th>worst</th><th> </th><th>best</th><th>worst</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start="row in vm.rows">
<td rowspan="2">{{row.a.text}}</td>
<td>{{row.a.items[0]}}</td>
<td>{{row.a.items[2]}}</td>
<td ng-if="row.b" rowspan="2">{{row.b.text}}</td>
<td ng-if="row.b">{{row.b.items[0]}}</td>
<td ng-if="row.b">{{row.b.items[2]}}</td>
</tr>
<tr ng-repeat-end>
<td>{{row.a.items[1]}}</td>
<td>{{row.a.items[3]}}</td>
<td ng-if="row.b">{{row.b.items[1]}}</td>
<td ng-if="row.b">{{row.b.items[3]}}</td>
</tr>
</tbody>
</table>
因此 'items' 数组的每个元素都会创建两个 table 行,并包含并排项的 'a' 和 'b' 元素。
我有这样的数据结构:
{
"Places to visit": {
"Best": [
"place1",
"place2"
],
"Worst": [
"place3",
"place4"
]
},
"Cuisines": {
"Best": [
"cuisine1",
"cuisine2"
],
"Worst": [
"cuisine3",
"cuisine4"
]
},
"Mobiles": {
"Best": [
"mobile1",
"mobile2"
],
"Worst": [
"mobile3",
"mobile4"
]
}
}
使用此数据结构,我需要在 UI 中构建一个 table,它应该如下所示(一行中有 2 个指标)。
我不知道如何在此数据结构上使用 ng-repeat 来获得所需的 table。
TIA。
如果你想使用 html table,你需要重新格式化你的数据,并且可能想要使用允许多个元素的 ng-repeat-start
和 ng-repeat-end
对于数组中的单个项目。
例如,'row' 的数据将有 a
的景点和 b
的美食:
<table>
<thead>
<tr>
<th> </th><th>best</th><th>worst</th><th> </th><th>best</th><th>worst</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start="row in vm.rows">
<td rowspan="2">{{row.a.text}}</td>
<td>{{row.a.items[0]}}</td>
<td>{{row.a.items[2]}}</td>
<td ng-if="row.b" rowspan="2">{{row.b.text}}</td>
<td ng-if="row.b">{{row.b.items[0]}}</td>
<td ng-if="row.b">{{row.b.items[2]}}</td>
</tr>
<tr ng-repeat-end>
<td>{{row.a.items[1]}}</td>
<td>{{row.a.items[3]}}</td>
<td ng-if="row.b">{{row.b.items[1]}}</td>
<td ng-if="row.b">{{row.b.items[3]}}</td>
</tr>
</tbody>
</table>
因此 'items' 数组的每个元素都会创建两个 table 行,并包含并排项的 'a' 和 'b' 元素。