2013-03-28 10 views
6

Czy mimo to można dołączyć indeks $ ng-repeat $ do wartości dyrektywy ng-model?

<div class="row" ng-repeat="item in GiantList"> 
    <input type="text" value="" ng-model="saveData.MyProperty+[$index+1]"> 
</div> 

Idealnie, oznaczałoby to, że:

$ scope.saveData = [{ "MyProperty1": "Bob"}, { "MyProperty2": "Sam"}, { "MyProperty3" : "Chris"}]

Próbowałem każdej kombinacji składniowej, o której myślę, że na próżno.

Wielkie dzięki!

+0

nie jestem pewien, że to, co chcesz być czysty. Chcesz zdobyć przyjaciela # ($ index) saveData [$ index]? – Galdo

+1

'ng-model =" saveData [item.Name + $ index] 'wydaje się działać (ale nie" [item.Name + $ index + 1] ') –

+0

item.Name + ($ index + 1) – Galdo

Odpowiedz

11

Spróbuj

<input type="text" value="" ng-model="saveData['MyProperty'+($index+1)]"> 

Demo: Fiddle

+0

To wszystko! dzięki - rozwiązałeś zagadkę Tak wiele wyborów z {{}}, [] i "- Nigdy nie wiem, których użyć. Dziękuję !!!! –

+0

To dziwne, że ta odpowiedź działa, ponieważ twoje saveData jest tablicę i używasz jej jak obiektu (najpierw patrzysz bezpośrednio na właściwość bez wybierania obiektu w tablicy ... czy jesteś pewien, że saveData w twoim pytaniu jest podobna do tej w twojej aplikacji? – Galdo

+0

@Gald o Masz rację - to demo, które napisałem, jest nieprawidłowe. Zasadniczo próbowałem wymyślić syntaktyczną magię, aby móc manipulować wartością pola modelu ng przy użyciu konkatenacji ciągów. –

2

nie jestem pewien, że zrozumiał swoje pytanie, ale spróbuj tego:

http://plnkr.co/edit/3qClmN

saved[$index]['friend'+($index+1)] 
+0

Wielkie dzięki, Galdo! –

+0

Powodzenia w projekcie! – Galdo

Powiązane problemy