使用带有指令的 ng-repeat 创建一个适应数据的 table

Using ng-repeat with directives to create a table that adapts to data

我有一个 table,它使用 ng-repeat 遍历对象数组。数组中的所有对象都具有相同的键。我想让它可以使用任意一组键,只要键在该数组中是一致的。看来我需要一个指令来生成并附加

<td>{{key}}</td> 

根据需要,可能通过遍历 Object.keys(array[0]).

例如,table 可以接受以下任一结构:

{ date: 1425535595000, name: "Name", desc: "some description" }
{ a: "a", b: "b", c: "c", d: "d" }

将相应地生成适当的绑定:

<tr ng-repeat="obj in objects">
    <td>{{date}}</td><td>{{name}}</td><td>{{desc}}</td>
</tr>

<tr ng-repeat="obj in objects">
    <td>{{a}}</td><td>{{b}}</td><td>{{c}}</td><td>{{d}}</td>
</tr>

我在指令方面有点弱,而且我不是 100% 确定最好的方法。我应该怎么做?

您需要使用两个 ngRepeat 指令,一个用于行,一个用于 table 个单元格:

<tr ng-repeat="obj in objects">
    <td ng-repeat="(key, value) in obj">{{value}}</td>
</tr>

演示: http://plnkr.co/edit/AG1sh3UHImJgiONWbVA2?p=preview