【问题标题】:ng-repeat on object angularjsng-repeat 对象 angularjs
【发布时间】:2016-09-16 21:18:20
【问题描述】:

我有一个这样的对象

Obj = {
  "elements":[
               {"name":"something","id":"v1-234"},
               {"name":"somethingElse","id":"v1-239"}
             ],
  "paging":{
    "next" : "100",
    "total": "2000"  
   },
 "linked"={
            "partners":[
                         {"id":"82","name":"A"},
                         {"id":"83","name":"B"}
                       ],
             "instructors":
                       [
                         {"id":"11232","name":"alex"},
                         {"id":"11432","name":"boob"}
                       ]
           }
    }

我在元素数组和合作伙伴和讲师数组中有相同的项目。我只放置了 2 件物品只是为了展示,可能有很多。

Obj.elements[0] 与 Obj.linked.partners[0] 和 Obj.linked.instructors[0] 相关。第一个、第二个、第三个......项目也是如此。

我怎样才能对这个对象进行 ng-repeat 以便我可以显示

Obj.elements[i] Obj.linked.partners[i] Obj.linked.instructors[i]

一次在 html 模板中?

【问题讨论】:

  • 您必须格式化您的视图模型以满足您的需求。

标签: javascript angularjs object angularjs-ng-repeat


【解决方案1】:

如果您的元素、合作伙伴和讲师数组的长度始终相同,并且您希望将名称连接在一起,例如,您可以尝试这样的操作。

<div ng-repeat="element in Obj.elements">
    {{element.name}} {{Obj.linked.partners[$index].name}} {{Obj.linked.instructors[$index].name}}
</div>
Angular 在 ng-repeat 中使用

$index 来跟踪其在遍历对象时的位置。这是文档:ng-repeat

【讨论】:

  • 我认为Obj.elemnts 会抛出一个错误,因为它似乎不是一个有效的repeat_expression (请参阅文档)即使你不使用项目,你也应该将其修改为ng-repeat="item in Obj.elements"
  • 它不会抛出错误,因为 Obj.elements 是一个数组。
【解决方案2】:

ng-repeat 具有 $index 范围变量:

<ANY ng-repeat="element in model.elements">
   <span ng-bind="element.name"></span>
   <span ng-bind="model.linked.partners[$index].name"></span>
   <span ng-bind="model.linked.instructors[$index].name"></span>
</ANY>

【讨论】:

  • 我认为span应该是ng-bind=model.linked.[...]
  • @drakyoko 应该是什么? ;P
猜你喜欢
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2017-12-22
  • 1970-01-01
相关资源
最近更新 更多