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

Javascript 如何在ng repeat中将对象属性别名为变量,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我在一个对象数组上重复,我希望循环中的变量只引用每个对象的一个属性 简化数据示例: var data = [ { 'name': { 'first': 'John', 'last': 'Johnson' } 'age': 45 }, { 'name': { 'first': 'Larry', 'last': 'Wilson' } 'age': 45 } ] 我可以做到: {{pers

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

简化数据示例:

var data = [
  {
    'name': {
      'first': 'John',
      'last': 'Johnson'
    }
    'age': 45
  },
  {
    'name': {
      'first': 'Larry',
      'last': 'Wilson'
    }
    'age': 45
  }
]
我可以做到:

{{person.name.first}}

但我更愿意做的是专注于我正在使用的对象的唯一部分,并做如下操作:

{{name.first}}


但这似乎不起作用——目前可能吗?

您可以使用
nginit

<div ng-repeat="person in data" ng-init="name=person.name">{{ name.first }}</div>
{{name.first}
小心使用“ng init”技巧。这将“name”变量绑定到“person”对象,而不是为数据[$index]创建实际别名。可能需要的名称表达式

// 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";

我想不会,但是你可以使用nginit
{{{name.first}}
这个问题奇迹般地出现在一个措辞不太好的谷歌搜索中。这正是我所需要的。那么你有什么建议吗?附言。很棒的提示:-)