我的数据是具有键值对的对象数组。我正在尝试用聚合物组件中的数据填充表格。如果我明确使用密钥,它可以工作。以下是“FacilityId”的示例:
alertnateGridColor
但是,正如您从动态生成的列中看到的那样,我并不总是知道键的名称。我尝试使用<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<template is="dom-repeat" items="{{columns}}">
<th>{{item}}</th>
</template>
</tr>
</thead>
<tbody>
<template is="dom-repeat" items="{{data}}">
<tr>
<td>{{item.FacilityId}}</td>
</tr>
</template>
</tbody>
</table>
,但这不起作用,即使它确实如此,我也不知道会有多少。我也试过使用嵌套模板,但我无法理解。
以下是我的数据的样子(同样,字段的数量和名称可能会有所不同):
答案 0 :(得分:0)
基于@David R引用的答案,这有效:
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<template is="dom-repeat" items="{{columns}}">
<th>{{item}}</th>
</template>
</tr>
</thead>
<tbody>
<template is="dom-repeat" items="{{data}}">
<tr>
<template is="dom-repeat" items="{{_toArray(item)}}">
<td>{{item.value}}</td>
</template>
</tr>
</template>
</tbody>
</table>
来自https://stackoverflow.com/a/30794220/736893的自定义函数:
Polymer({
is: 'widget-table',
properties: {
data: {
type: Array,
value: function() {return []}
}
},
_toArray: function(obj) {
return Object.keys(obj).map(function(key) {
return {
name: key,
value: obj[key]
};
});
}
});