Как псевдоним свойства объекта как переменной в 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

Остерегайтесь использования трюка "ng-init". Это привяжет переменную "name" к объекту "person" вместо того, чтобы сделать фактический псевдоним для выражения [$ index].name, которое вы можете захотеть.

// Init model.
    data['fooPerson'] = {name: {first:"foo"}, age:64}
    $timeout(function(){
      data['fooPerson'] = {name: {first: "bar"}, age:51}
    }, 1000);
// Result after ~1 second:
// {{ name.first }} --> still "foo";