最后我能够让这件事发挥作用。不完全是在这种情况下,而是在另一个项目中,具有完全相同的逻辑。唯一的变化是我的 _objectArray 不是字符串数组,而是对象数组。所以代码将如下所示:
<template is="dom-repeat" items="{{tableData}}" as="rowData">
<tr>
<template is="dom-repeat" items="{{headers}}" as="columnData">
<td>
<template is="dom-if" if="{{checkType(columnData, 'check')}}">
<paper-checkbox disabled="{{getAttributeValue(columnData, 'disabled')}}" checked="{{getRowData(rowData, columnData)}}" on-change="checkBoxSelected"></paper-checkbox>
</template>
<template is="dom-if" if="{{checkType(columnData, 'led')}}">
<led-indicator on="{{!getRowData(rowData, columnData)}}"></led-indicator>
<span style="display: none;">{{getRowData(rowData, columnData)}}</span>
</template>
<template is="dom-if" if="{{checkType(columnData, 'link')}}">
<a href="javascript:void(0)" on-click="tableRowClicked">{{getRowData(rowData, columnData)}}</a>
</template>
<template is="dom-if" if="{{checkType(columnData, 'text')}}">
<span>{{getRowData(rowData, columnData)}}</span>
</template>
</td>
</template>
</tr>
</template>
看方法getRowData
getRowData: function (row, column) {
return row[column.key];
},
和
checkType: function (columnData, type) {
var isType = false;
isType = columnData.type.toLowerCase() == type.toLowerCase();
return isType;
},
这是一个表格,它可以动态添加或删除行和列,并显示不同类型的元素,如文本、链接、复选框我的一些自定义控件,如 led-indicator 等。
背后的逻辑是,headers 数组将用于生成表列,该数组包含结构对象
{
name: 'Popular Name',
key: 'PopularName',
type: 'text'
}
表数据包含对象数组,其中包含标题数组中指定的键。希望这可能对某些人有用。