2014-09-19 12 views
18

Sto ripetendo una serie di oggetti e voglio che la mia variabile nel ciclo faccia riferimento a una sola proprietà di ciascun oggetto. esempioCome alias proprietà dell'oggetto come variabile in ng-repeat

dati semplificato:

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

avrei potuto fare:

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

Ma quello che preferisco fare è di concentrarsi solo in sull'unica parte dell'oggetto I' m utilizzando e fare qualcosa del genere:

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

Ma quello non sembra funzionare - è questo possibile al momento?

+1

credo di no, però si potrebbe usare ng-init ''

{{ name.first }}
PSL

+1

Questa domanda alzato miracolosamente in una ricerca su Google non molto ben formulata-. Era esattamente ciò di cui avevo bisogno. – Nate

risposta

1

Attenzione di usare il trucco "ng-init". Questo legherà la variabile "nome" a un oggetto "persona" invece di creare un alias effettivo per l'espressione di dati [$ indice] .name che potresti desiderare.

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

Quindi cosa mi consiglia? –

+0

PS. Ottimo consiglio :-) –