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}}
这个问题奇迹般地出现在一个措辞不太好的谷歌搜索中。这正是我所需要的。那么你有什么建议吗?附言。很棒的提示:-)