如何在ng-repeat中将对象属性别名为变量

时间:2014-09-19 16:03:12

标签: javascript angularjs angularjs-ng-repeat

我重复一个对象数组,我希望循环中的变量只能引用每个对象的一个​​属性。

简化数据示例:

var data = [
  {
    'name': {
      'first': 'John',
      'last': 'Johnson'
    }
    'age': 45
  },
  {
    'name': {
      'first': 'Larry',
      'last': 'Wilson'
    }
    'age': 45
  }
]

我能做到:

<div ng-repeat="person in data">{{ person.name.first }}</div>

但我喜欢做的只是专注于我使用的对象的唯一部分并执行以下操作:

<div ng-repeat="person.name in data as name">{{ name.first }}</div>

但这似乎并没有起作用 - 目前这可能吗?

2 个答案:

答案 0 :(得分:19)

您可以使用ng-init

执行此操作
<div ng-repeat="person in data" ng-init="name=person.name">{{ name.first }}</div>

https://docs.angularjs.org/api/ng/directive/ngInit

答案 1 :(得分:1)

小心使用&#34; ng-init&#34;特技。这将绑定&#34; name&#34;变量为&#34; person&#34;而不是为您可能需要的数据[$ index] .name表达式创建实际别名。

timeout