【发布时间】:2018-07-06 01:49:03
【问题描述】:
我对 Vue JS 2 还是很陌生。我正在构建一个动态表,其中列(和列标题)的数量将根据分配给它的数组而波动。这意味着我不能做这样的事情
<td>{{assignments.name}}</td>
<td>{{assignments.id}}</td>
<td>{{assignments.location}}</td>
因为数据会发生变化,并不总是相应地匹配。在设置 API 之前,我会从硬编码的 JSON 中提取:
[
{
"Name": "Jennison",
"ID": 879456,
"Location": "Carotsville"
},
{
"Name": "Cordan",
"ID": 547932,
"Location": "Paperville"
},
{
"Name": "Sir Mac",
"ID": 423971,
"Location": "Hammerville"
},
{
"Name": "Pat",
"ID": 984123,
"Location": "Isenville"
}
]
以下是我正在努力解决的标记。它不是抓取每个值,而是抓取每个对象。为了正确填充表格,我需要做什么才能让它获取值?
<table class="table table-striped table-bordered table-sm table-hover">
<thead>
<tr>
<th v-for="(value, key) in assignmentsHardcoded[0]" v-bind:key="value">{{key}}</th>
</tr>
</thead>
<tbody>
<tr>
<td v-for="assignments in assignmentsHardcoded" v-bind:key="assignments.id">{{ assignments }}</td>
</tr>
</tbody>
</table>
为了正确填充表格,我需要做什么才能让它获取值?
【问题讨论】:
-
我可能会公开一个键数组的
computed属性,然后您可以遍历那个。您想循环遍历assignmentsHardcoded的trs,然后循环遍历tds 的键数组。 -
@jonrsharpe 计算属性将是一个好主意,但并不是真正需要的,因为您可以在没有计算属性的情况下管理相同的结果,但基本上是相同的模板结构。查看我的回答了解更多信息
-
@Derek 对象顺序无法保证,您不一定会在正确的列中获得正确的值
-
@jonrsharpe - 即使这是一个问题,OP 也可以遍历数组属性的第一个元素并使用它们,仍然不需要计算属性
标签: javascript json html-table vuejs2