2013-07-29 2 views
19

Ich habe einige Probleme mit AngularJS ng-repeat. Hier ist, was ich habe:Kann ich ng-repeat verwenden, um in AngularJS über ein Array zu iterieren?

<div ng:show="selected == 3"> 
    <div class="columns"> 
     <textarea rows="4" data-ng-model="modal.data.answer[1].text" cols="91">1</textarea> 
    </div> 
    <div class="columns"> 
     <label>Explanation</label> 
     <textarea rows="2" data-ng-model="modal.data.answer[1].explanation" cols="91"></textarea> 
    </div> 
    <div class="columns"> 
     <div class="colx2-left"> 
      <span class="label">Correct</span> 
      <input type="checkbox" data-ng-model="modal.data.answer[1].correct" class="check-box"><input type="hidden" value="false" name="Details[0].Correct"> 
     </div> 
     <div class="colx2-right"> 
      <label>Image File</label> 
      <input type="text" data-ng-model="modal.data.answer[1]image" class="full-width"> 
     </div> 
    </div> 
</div> 

Das modal.data.answer Array wird immer sechs Elemente haben. Kann ich mit ng-repeat den HTML-Code für diese erstellen und ihn sogar die [x] -Nummern im Array wiederholen lassen und die Zahl in der ersten Zeile für "selected =" von 3 auf 8 erhöhen?

Soweit ich weiß, dass ich <div ng-repeat="t in [3,4,5,6,7,8]"> </div> verwenden, aber wie kann ich die Werte von t in Dinge wie bekommen:

+0

nicht sehen, warum Sie das nicht tun .. ng: show und ng: wiederholen sind nicht voneinander abhängig. also solltest du es schaffen ... probier es aus. – Madushan

+1

Ich bin nicht sicher, wie es geht, da ich kein Beispiel für etwas so Einfaches wie das Wiederholen eines Bereichs in der Dokumentation sehen kann: http://docs.angularjs.org/api/ng.directive:ngRepeat Ich wünschte, die Dokumentation wäre besser. Fantastisches Produkt, aber die Docs sind eine echte Enttäuschung für mich :-(Ich denke, ich bin nicht der einzige, da ich eine riesige Anzahl von Kommentaren und Fragen am Ende der Seite sehe. – Alan2

Antwort

21

Ihre Bearbeitung ist in der richtigen Weise Überschrift, können Sie durch eine Liste von ganzen Zahlen iterieren leicht, ist die Sie nur den Wert von Ihnen Index verwenden, wie die

<div ng-repeat="t in [3,4,5,6,7,8]"> 
.... 
data-ng-model="modal.data.answer[t].text" 
... 

ich eine Geige gemacht, wenn Sie versuchen wollen http://jsfiddle.net/DotDotDot/tweyS/ (das Eingabefeld hier nur den gewählten Wert zu ändern, wie in Ihrem Codebeispiel, in um die richtigen Felder anzuzeigen)

Spaß haben

16

Duplikate in einem Repeater sind nicht erlaubt. Verwenden Sie den Ausdruck "Track by", um eindeutige Schlüssel anzugeben.

<div ng-repeat="n in [42, 42, 43, 43] track by $index"> 
    {{n}} 
    </div> 
Verwandte Themen