【问题标题】:Using ng-repeat with directives to create a table that adapts to data使用带有指令的 ng-repeat 创建适应数据的表
【发布时间】:2015-05-06 11:30:37
【问题描述】:

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

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

根据需要,可能通过迭代 Object.keys(array[0])。

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

{ 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% 知道最好的方法。我该怎么做?

【问题讨论】:

    标签: javascript arrays angularjs angularjs-ng-repeat angular-directive


    【解决方案1】:

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

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

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

    【讨论】:

    • 这太容易了...有没有一种简单的方法可以使用此解决方案忽略某些键?就像我从不想显示一个名为 date 的键一样。我认为我需要编写某种函数来完成此操作,并且将在那里过滤掉某些键。
    • 您可以使用辅助函数,或者对于简单的情况,ngIf 也可以:plnkr.co/edit/w5imnQAua26HW3PkKelW?p=preview
    • 谢谢。我喜欢解决方案的简单性。
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2014-11-17
    • 2015-02-23
    • 1970-01-01
    相关资源
    最近更新 更多