Angular memang menyediakan beberapa dukungan untuk loop menggunakan angka-angka dalam arahan HTML-nya:
<div data-ng-repeat="i in [1,2,3,4,5]">
do something
</div>
Tetapi jika variabel lingkup Anda mencakup rentang yang memiliki angka dinamis maka Anda harus membuat array kosong setiap kali.
Di controller
var range = [];
for(var i=0;i<total;i++) {
range.push(i);
}
$scope.range = range;
Dalam HTML
<div data-ng-repeat="i in range">
do something
</div>
Ini berfungsi, tetapi itu tidak perlu karena kita tidak akan menggunakan array jangkauan sama sekali dalam loop. Apakah ada yang tahu pengaturan rentang atau reguler untuk nilai min / maks?
Sesuatu seperti:
<div data-ng-repeat="i in 1 .. 100">
do something
</div>
angularjs
angularjs-ng-repeat
matsko
sumber
sumber
Jawaban:
Saya tweak jawaban ini sedikit dan muncul dengan biola ini .
Filter didefinisikan sebagai:
Dengan pengulangan yang digunakan seperti ini:
sumber
Saya datang dengan versi yang lebih sederhana, untuk membuat rentang antara dua angka yang ditentukan, misalnya. 5 hingga 15
Lihat demo di JSFiddle
HTML :
Pengendali :
sumber
var a; void 0 === a
"sungguh" tidak terdefinisi.Hanya Javascript biasa (Anda bahkan tidak perlu controller):
Sangat berguna saat mockuping
sumber
Referencing "constructor" field in Angular expressions is disallowed! Expression: [].constructor(10)
. Mungkin itu bekerja di versi Angular sebelumnya atau saya melakukan sesuatu yang salah.[].slice.constructor
, yang memberikan aksesFunction
, maka untuk evaluasi kode).Saya datang dengan sintaks yang sedikit berbeda yang cocok untuk saya sedikit lebih dan menambahkan batas bawah opsional juga:
yang dapat Anda gunakan sebagai
atau
sumber
$digest
iterasi ketika menggunakan nilai scoped, yaitu:ng-repeat="n in [1, maxValue] | makeRange"
?Bagi mereka yang baru menggunakan angular. Indeks bisa didapat dengan menggunakan $ index.
Sebagai contoh:
Yang mana, ketika Anda menggunakan filter praktis Gloopy, cetak:
lakukan sesuatu nomor 0
lakukan sesuatu nomor 1
lakukan sesuatu nomor 2
lakukan sesuatu nomor 3
lakukan sesuatu nomor 5
lakukan sesuatu nomor 5
lakukan sesuatu nomor 6
lakukan sesuatu nomor 7
lakukan sesuatu nomor 8
lakukan sesuatu nomor 9
sumber
do something number {{n}}
juga sudah cukup.Cara singkat untuk melakukan ini adalah dengan menggunakan metode _.range () Underscore.js. :)
http://underscorejs.org/#range
sumber
Saya menggunakan
ng-repeat-range
arahan khusus saya :dan kode html adalah
atau sederhana
atau bahkan sederhana
atau hanya
sumber
element.attr('ng-repeat', 'n in [' + rangeString + ']');
tidak berfungsi ...Solusi tanpa kode paling sederhana adalah init array dengan range, dan gunakan $ index + betapapun saya ingin mengimbangi dengan:
sumber
Definisi metode
Kode di bawah ini mendefinisikan metode yang
range()
tersedia untuk seluruh ruang lingkup aplikasi AndaMyApp
. Perilakunya sangat mirip denganrange()
metode Python .Pemakaian
Dengan satu parameter:
0, 1, 2,
Dengan dua parameter:
1, 2, 3, 4,
Dengan tiga parameter:
-2, -1.5, -1, -0.5, 0, 0.5,
sumber
Anda dapat menggunakan filter 'setelah' atau 'sebelum' dalam modul angular.filter ( https://github.com/a8m/angular-filter )
HTML:
hasil: 5, 6, 7, 8, 9, 10
sumber
Tanpa perubahan pada pengontrol Anda, Anda dapat menggunakan ini:
Nikmati!
sumber
Jawaban terpendek: 2 baris kode
JS (di pengontrol AngularJS Anda)
HTML
... di mana
myCount
jumlah bintang yang seharusnya muncul di lokasi ini.Kamu bisa memakai
$index
untuk operasi pelacakan apa pun. Misalnya jika Anda ingin mencetak beberapa mutasi pada indeks, Anda dapat memasukkan yang berikut ini didiv
:sumber
Menggunakan UnderscoreJS:
Menerapkan ini untuk
$rootScope
membuatnya tersedia di mana-mana:sumber
Sangat sederhana:
sumber
Hai, Anda dapat mencapainya menggunakan html murni menggunakan AngularJS (TIDAK diperlukan Instruksi!)
sumber
Atur Lingkup di pengontrol
Atur Ulangi di File Template Html
sumber
Perbaikan untuk solusi @ Mormegil
pemakaian
3 2 1 0 -1 -2 -3
-3 -2 -1 0 1 2 3
0 1 2 3
0 -1 -2 -3
sumber
Saya mencoba yang berikut ini dan berhasil baik untuk saya:
Sudut 1.3.6
sumber
Terlambat ke pesta. Tetapi akhirnya saya hanya melakukan ini:
Di controller Anda:
Html:
sumber
Ini adalah jawaban yang ditingkatkan jzm (saya tidak bisa berkomentar lain saya akan mengomentari jawabannya karena ia termasuk kesalahan). Fungsi ini memiliki nilai rentang awal / akhir, jadi lebih fleksibel, dan ... berfungsi. Kasus khusus ini untuk hari bulan:
sumber
Saya menyiapkan ini dan melihatnya mungkin bermanfaat bagi sebagian orang. (Ya, CoffeeScript. Sue me.)
Pengarahan
Menggunakan:
HTML
Bisakah ini menjadi lebih sederhana?
Saya khawatir tentang filter karena Angular suka mengevaluasi ulang tanpa alasan yang baik sepanjang waktu, dan ini merupakan hambatan besar jika Anda memiliki ribuan filter seperti yang saya lakukan.
Arahan ini bahkan akan mengawasi perubahan dalam model Anda, dan memperbarui elemen yang sesuai.
sumber
Jika Anda ingin mencapai ini dalam html tanpa pengontrol atau pabrik.
sumber
Misalkan
$scope.refernceurl
arraysumber
Ini adalah varian paling sederhana: cukup gunakan array bilangan bulat ....
sumber