angularjs ng-repeat 使用索引而不是名称

angularjs ng-repeat using index rather than names

我使用 ng-repat 用数组填充 html table。

我在规范化数组中每个 属性 的命名时遇到问题。

一些用户非常固执,如果可能的话,现在我必须找到一个快速的解决方法。

我的数组 AgendaItems 有时会像这样:

{"Agenda Item":"1","Legistar ID":"62236","Title":"Approval of Minutes","Meeting ID":"49837"}

其他时间如:

{"AgendaItem":"1","LegistarID":"62236","Title":"Approval of Minutes","MeetingID":"49837"}

html:

                    <tbody ng-repeat="ai in AgendaItems">   
                        <tr>
                            <td>{{ai.MeetingID}}</td>
                            <td>{{ai.AgendaItem}}</td>
                            <td>{{ai.LegistarID}}</td>
                            <td>{{ai.Title}}</td>
                        </tr>
                    </tbody>

有没有一种方法可以使用索引值来代替,例如:ai.[i] 这样我就不必担心列的名称是否带有 space?

非常感谢任何帮助。

谢谢, 埃拉斯莫

您可以在 ng-repeat 中隐式访问指令自动提供的范围属性,例如 $index

但是,在遍历 对象 而不是数组时使用 $index 是相当值得怀疑的。

您似乎追求的是一种遍历对象的键和值的方法,这毫无疑问,实际上 ng-repeat 也通过 "(key, value) in object" 语法支持它。 名称keyvalue是任意的。

这是这样写的:

首先,对于单个 agendaItemai

<div>
  <div ng-repeat="(key, value) in ai">{{key}}: {{value}}</div>
</div>

其次,在问题的上下文中

<tbody ng-repeat="ai in AgendaItems">
  <tr>
    <td ng-repeat="(key, value) in ai">{{value}}</td>
  </tr>
</tody>