Weg zu ng-Wiederholung definierte Anzahl von Zeiten statt Wiederholung über Array?
Gibt es eine Möglichkeit, ng-Wiederholung eine definierte Anzahl von Zeiten, anstatt immer über ein Array zu iterieren?
Zum Beispiel möchte ich, dass das Listenelement 5 Mal auftaucht, wenn $scope.number gleich 5 ist und zusätzlich die Zahl erhöht wird, so dass jedes Listenelement wie 1, 2, 3, 4, 5 erhöht wird
Gewünschtes Ergebnis:
<ul>
<li><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
<li><span>4</span></li>
<li><span>5</span></li>
</ul>
414
3
Im Moment akzeptiert "ng-repeat" nur eine Sammlung als Parameter, aber Sie könnten dies tun:
Und irgendwo in deinem Controller:
Dies würde es Ihnen ermöglichen,
$scope.number
in eine beliebige Zahl zu ändern und trotzdem die gewünschte Bindung zu erhalten.[Hier ist ein Fiddle][1] mit einer Reihe von Listen, die die gleiche
getNumber
Funktion verwenden.EDIT 1/6/2014: Neuere Versionen von Angular 1.x verwenden die folgende Syntax:
EDIT 9/25/2018: Neuere Versionen von Angular 1.x ermöglichen es Ihnen, dies ohne eine Funktion zu tun. Wenn Ihr Code einfach ist und Sie aus anderen Gründen keine "getNumber"-Funktion benötigen, können Sie diese jetzt weglassen und nur dies tun:
Dank an @Nikhil Nambiar aus seiner Antwort unten für diese Aktualisierung
Hier ist ein Beispiel dafür, wie Sie dies tun können. Beachten Sie, dass ich durch einen Kommentar in den ng-repeat-Dokumenten inspiriert wurde: http://jsfiddle.net/digitalzebra/wnWY6/
Beachten Sie die ng-repeat-Anweisung:
Hier ist der Controller:
Ich denke, dieses [jsFiddle][1] aus diesem thread könnte das sein, wonach Sie suchen.