在不知道数据密钥的情况下填充单元格

时间:2016-09-14 14:47:19

标签: javascript jquery object polymer key-value

我的数据是具有键值对的对象数组。我正在尝试用聚合物组件中的数据填充表格。如果我明确使用密钥,它可以工作。以下是“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> ,但这不起作用,即使它确实如此,我也不知道会有多少。我也试过使用嵌套模板,但我无法理解。

以下是我的数据的样子(同样,字段的数量和名称可能会有所不同):

enter image description here

1 个答案:

答案 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]
            };
        });
    }
});