Angular bietet eine gewisse Unterstützung für eine for-Schleife, die Zahlen in seinen HTML-Anweisungen verwendet:
<div data-ng-repeat="i in [1,2,3,4,5]">
do something
</div>
Wenn Ihre Bereichsvariable jedoch einen Bereich mit einer dynamischen Nummer enthält, müssen Sie jedes Mal ein leeres Array erstellen.
In der Steuerung
var range = [];
for(var i=0;i<total;i++) {
range.push(i);
}
$scope.range = range;
Im HTML
<div data-ng-repeat="i in range">
do something
</div>
Dies funktioniert, ist jedoch nicht erforderlich, da das Bereichsarray in der Schleife überhaupt nicht verwendet wird. Weiß jemand, wie man einen Bereich oder einen regulären Wert für den Min / Max-Wert einstellt?
Etwas wie:
<div data-ng-repeat="i in 1 .. 100">
do something
</div>
angularjs
angularjs-ng-repeat
Matsko
quelle
quelle
Antworten:
Ich habe diese Antwort ein wenig optimiert und mir diese Geige ausgedacht .
Filter definiert als:
Mit der Wiederholung wie folgt verwendet:
quelle
Ich habe mir eine noch einfachere Version ausgedacht, um einen Bereich zwischen zwei definierten Zahlen zu erstellen, z. 5 bis 15
Siehe Demo zu JSFiddle
HTML :
Controller :
quelle
var a; void 0 === a
"wirklich" undefiniert.Nichts als einfaches Javascript (Sie brauchen nicht einmal einen Controller):
Sehr nützlich beim Modellieren
quelle
Referencing "constructor" field in Angular expressions is disallowed! Expression: [].constructor(10)
. Vielleicht hat das in einer früheren Version von Angular funktioniert oder ich mache etwas falsch.[].slice.constructor
Zugriff aufFunction
Codeauswertung).Ich habe mir eine etwas andere Syntax ausgedacht, die mir etwas besser passt und auch eine optionale Untergrenze hinzufügt:
die Sie als verwenden können
oder
quelle
$digest
Iterationen umgehen, wenn Sie einen Wert mit Gültigkeitsbereich verwenden, dh :ng-repeat="n in [1, maxValue] | makeRange"
?Für diejenigen, die neu in Angularjs sind. Der Index kann mit $ index abgerufen werden.
Beispielsweise:
Wenn Sie den praktischen Filter von Gloopy verwenden, drucken Sie: Machen
Sie etwas Nummer 0
Tun Sie etwas Nummer 1
Tun Sie etwas Nummer 2
Tun Sie etwas Nummer 3
Tun Sie etwas Nummer 4
Tun Sie etwas Nummer 5
Tun Sie etwas Nummer 6
Tun Sie etwas Nummer 7
Tun Sie etwas Nummer 8
mach etwas Nummer 9
quelle
do something number {{n}}
würde auch ausreichen.Eine kurze Möglichkeit hierfür wäre die Verwendung der _.range () -Methode von Underscore.js. :) :)
http://underscorejs.org/#range
quelle
Ich benutze meine benutzerdefinierte
ng-repeat-range
Direktive:und HTML-Code ist
oder einfach
oder auch einfach
oder nur
quelle
element.attr('ng-repeat', 'n in [' + rangeString + ']');
funktioniert nicht ...Am einfachsten war es keine Codelösung, ein Array mit dem Bereich zu initiieren und den $ index + zu verwenden, wie viel ich auch versetzen möchte:
quelle
Methodendefinition
Der folgende Code definiert eine Methode,
range()
die für den gesamten Anwendungsbereich verfügbar istMyApp
. Sein Verhalten ist der Python-range()
Methode sehr ähnlich .Verwendung
Mit einem Parameter:
0, 1, 2,
Mit zwei Parametern:
1, 2, 3, 4,
Mit drei Parametern:
-2, -1.5, -1, -0.5, 0, 0.5,
quelle
Sie können 'after'- oder' before'-Filter im Modul angle.filter verwenden ( https://github.com/a8m/angular-filter ).
HTML:
Ergebnis: 5, 6, 7, 8, 9, 10
quelle
Ohne Änderungen an Ihrem Controller können Sie Folgendes verwenden:
Genießen!
quelle
Kürzeste Antwort: 2 Codezeilen
JS (in Ihrem AngularJS-Controller)
HTML
... wo
myCount
ist die Anzahl der Sterne, die an dieser Stelle erscheinen sollen?Sie können
$index
für alle Verfolgungsvorgänge verwenden. Wenn Sie beispielsweise eine Mutation auf den Index drucken möchten, können Sie Folgendes in das Feld einfügendiv
:quelle
Verwenden von UnderscoreJS:
Wenn Sie dies anwenden,
$rootScope
wird es überall verfügbar:quelle
Sehr einfach:
quelle
Hallo, Sie können dies mit reinem HTML mit AngularJS erreichen (KEINE Richtlinie ist erforderlich!)
quelle
Stellen Sie den Bereich im Controller ein
Setzen Sie Wiederholung in HTML-Vorlagendatei
quelle
Eine Verbesserung der Lösung von @ Mormegil
Verwendung
3 2 1 0 -1 -2 -3
-3 -2 -1 0 1 2 3
0 1 2 3
0 -1 -2 -3
quelle
Ich habe folgendes versucht und es hat gut funktioniert für mich:
Winkel 1.3.6
quelle
Spät zur Party. Aber am Ende habe ich nur folgendes gemacht:
In Ihrem Controller:
Html:
quelle
Dies ist die verbesserte Antwort von jzm (ich kann nicht kommentieren, sonst würde ich ihre / seine Antwort kommentieren, weil er / sie Fehler enthielt). Die Funktion hat einen Start- / Endbereichswert, ist also flexibler und ... funktioniert. Dieser besondere Fall gilt für den Tag des Monats:
quelle
Ich habe das ausgepeitscht und gesehen, dass es für einige nützlich sein könnte. (Ja, CoffeeScript. Verklage mich.)
Richtlinie
Benutzen:
HTML
Kann das einfacher werden?
Ich bin vorsichtig mit Filtern, weil Angular sie immer wieder ohne guten Grund neu bewertet, und es ist ein großer Engpass, wenn Sie Tausende von Filtern haben, wie ich.
Diese Anweisung überwacht sogar Änderungen in Ihrem Modell und aktualisiert das Element entsprechend.
quelle
Wenn Sie dies in HTML ohne Controller oder Factory erreichen möchten.
quelle
Angenommen, es
$scope.refernceurl
handelt sich dann um ein Arrayquelle
Dies ist die einfachste Variante: Verwenden Sie einfach ein Array von Ganzzahlen ....
quelle