2014-09-19 11 views
18

Powtarzam w tablicy obiektów i chcę, aby moja zmienna w pętli odnosiła się do tylko jednej właściwości każdego obiektu. PrzykłademJak alias właściwości obiektu jako zmiennej w ng-repeat

dane uproszczony:

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

mogłem zrobić:

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

Ale co wolałbym zrobić, to po prostu skupić się na jedynej części obiektu I” m używając i wykonaj coś takiego:

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

Ale to nie działa - czy to jest obecnie możliwe?

+1

Chyba nie, jednak można użyć ng-startowych '' – PSL

+1

{{ name.first }}
To pytanie pojawiło się w cudowny sposób w niezbyt dobrze sformułowanego wyszukiwarce Google. To było dokładnie to, czego potrzebowałem. – Nate

Odpowiedz

1

Strzeż się za pomocą "NG-init" podstęp. Spowoduje to powiązanie zmiennej "name" z obiektem "person" zamiast rzeczywistego aliasu dla wyrażenia data [$ index] .name, które możesz chcieć.

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

Więc co polecasz? –

+0

PS. Świetna rada :-) –

Powiązane problemy