【问题标题】:angularjs ng-repeat using index rather than namesangularjs ng-repeat 使用索引而不是名称
【发布时间】:2021-01-04 19:10:17
【问题描述】:

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

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

有些用户很固执,现在我必须尽快找到解决办法,如果可能的话。

我的数组 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] 这样我就不必担心列的名称之间是否有空格?

非常感谢任何帮助。

谢谢你, 伊拉斯莫

【问题讨论】:

  • @Dalorzo - 我是否也更改了 AgendaItems 中的 ai?你介意给我看完整的例子吗?谢谢
  • 如果你是 AgendaItems 有空格它不会是一个有效的 json 对象,因此它应该不是 Angular 而是你的 JS 项目的问题
  • 您在ng-repeat 中拥有对$index 等范围变量的隐式访问权限。但是,在迭代 object 而不是数组时使用 $index 是有问题的。
  • 您是否尝试过迭代“ai”属性,例如 {{value}}?

标签: javascript arrays angularjs


【解决方案1】:

您可以在 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>

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多