Je répète sur un tableau d'objets et je veux que ma variable dans la boucle fasse référence à une seule propriété de chaque objet.
Exemple de données simplifié:
var data = [
{
'name': {
'first': 'John',
'last': 'Johnson'
}
'age': 45
},
{
'name': {
'first': 'Larry',
'last': 'Wilson'
}
'age': 45
}
]
Je pourrais faire:
<div ng-repeat="person in data">{{ person.name.first }}</div>
Mais ce que je préférerais faire, c'est simplement me concentrer sur la seule partie de l'objet que j'utilise et faire quelque chose comme ceci:
<div ng-repeat="person.name in data as name">{{ name.first }}</div>
Mais cela ne semble pas fonctionner - est-ce possible actuellement?
Vous pouvez le faire avec ng-init
:
<div ng-repeat="person in data" ng-init="name=person.name">{{ name.first }}</div>
Attention à ne pas utiliser le truc "ng-init". Cela liera la variable "name" à un objet "person" au lieu de créer un alias pour l'expression de données [$ index] .name que vous souhaiterez peut-être.
// 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";