由于您似乎希望有选择地显示列,因此首先将您的rows
/columns
转换为具有所需特定行的数组:
table: function() {
var table,
newRow,
columns = this.get('columns'),
rows = this.get('rows');
table = [];
rows.forEach(function(rowItem, rowIndex, rowEnumerable){
newRow = [];
columns.forEach(function(colItem, colIndex, colEnumerable){
if (rowItem[colItem] !== undefined) {
newRow.pushObject(rowItem[colItem]);
}
});
table.pushObject(newRow);
});
return table;
}.property('columns.@each', 'rows.@each')
这是一个计算属性,将包含一个行数组数组:
[
[2,3],
[12,13]
]
然后,您可以使用把手{{#each ... }}
助手迭代每一行,并使用另一个{{#each ...}}
助手迭代每一行中的每个单元格:
<table>
{{log table}}
{{#each row in table}}
<tr>
{{#each cell in row}}
<td>{{cell}}</td>
{{/each}}
</tr>
{{/each}}
</table>
JSBin 示例