Ich versuche, das Problem des Gültigkeitsbereichs innerhalb einer ng-repeat-Schleife zu lösen. Ich habe einige Fragen durchgesehen, konnte meinen Code jedoch nicht zum Laufen bringen.
Controller-Code:
function Ctrl($scope) {
$scope.lines = [{text: 'res1'}, {text:'res2'}];
}
Aussicht:
<div ng-app>
<div ng-controller="Ctrl">
<div ng-repeat="line in lines">
<div class="preview">{{text}}{{$index}}</div>
</div>
<div ng-repeat="line in lines">
<-- typing here should auto update it's preview above -->
<input value="{{line.text}}" ng-model="text{{$index}}"/>
<!-- many other fields here that will also affect the preview -->
</div>
</div>
</div>
Hier ist eine Geige: http://jsfiddle.net/cyberwombat/zqTah/
Grundsätzlich habe ich ein Objekt (es ist ein Flyer-Generator), das mehrere Textzeilen enthält. Jede Textzeile kann vom Benutzer angepasst werden (Text, Schriftart, Größe, Farbe usw.), und ich möchte eine Vorschau dafür erstellen. Das obige Beispiel zeigt nur das Eingabefeld für die Eingabe von Text und ich möchte, dass das Vorschau-Div automatisch / während der Eingabe aktualisiert wird, aber es wird viel mehr Steuerelemente geben.
Ich bin mir auch nicht sicher, ob ich den richtigen Code für den Schleifenindex gefunden habe. Ist dies der beste Weg, um einen ng-Modellnamen innerhalb der Schleife zu erstellen?
quelle
Antworten:
Ist für jede Iteration der ng-repeat-Schleife
line
ein Verweis auf ein Objekt in Ihrem Array. Verwenden Sie daher zur Vorschau des Werts die Option{{line.text}}
.Ebenso, um Daten an den Text zu binden, Daten an denselben zu binden :
ng-model="line.text"
. Sie müssen nicht verwenden,value
wenn Sie ng-model verwenden (eigentlich sollten Sie nicht).Geige .
Weitere Informationen zu Scopes und ng-repeat finden Sie unter Was sind die Nuancen der prototypischen / prototypischen Vererbung von Scopes in AngularJS? , Abschnitt ng-Wiederholung .
quelle
quelle