Lebih
AngularJS Untuk Loop dengan Angka & Rentang
Sudut tidak memberikan beberapa dukungan untuk loop untuk menggunakan angka-angka dalam HTML arahan:
<div data-ng-repeat="i in [1,2,3,4,5]">
do something
</div>
Tapi jika anda lingkup variabel mencakup rentang yang memiliki sejumlah dinamis maka anda akan perlu untuk membuat array kosong setiap waktu.
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 bekerja, tapi hal ini tidak perlu karena kita tidak't dapat menggunakan berbagai fasilitas di dalam loop. Apakah ada yang tahu dari pengaturan range atau biasa untuk min/max nilai?
Sesuatu seperti:
<div data-ng-repeat="i in 1 .. 100">
do something
</div>
248
23
Saya tweak [jawaban ini][1] sedikit dan datang dengan [ini biola][2].
Filter didefinisikan sebagai:
Saya datang dengan versi lebih sederhana, untuk menciptakan jarak antara dua didefinisikan angka, misalnya. 5 sampai 15
[Lihat demo di JSFiddle][1]
HTML:
Kontrol:
Apa-apa tapi biasa Javascript (anda don't bahkan perlu controller):
Sangat berguna ketika mockuping
Saya datang dengan sintaks yang sedikit berbeda yang cocok untuk saya sedikit lebih dan menambahkan opsional yang lebih rendah terikat serta:
Bagi mereka yang baru untuk angularjs. Indeks tersebut dapat diperoleh dengan menggunakan $index.
Misalnya:
Yang akan, bila anda're menggunakan Gloopy's berguna filter, cetak:
melakukan sesuatu yang nomor 0
melakukan sesuatu yang nomor 1
melakukan sesuatu yang nomor 2
melakukan sesuatu yang nomor 3
melakukan sesuatu yang nomor 4
melakukan sesuatu yang nomor 5
melakukan sesuatu yang nomor 6
melakukan sesuatu yang nomor 7
melakukan sesuatu yang nomor 8
melakukan sesuatu yang nomor 9
Pendek cara untuk melakukan ini adalah dengan menggunakan Garis bawah.js's _.range() metode. :)
http://underscorejs.org/#range
Saya menggunakan custom
ng-repeat-range
directive:Sederhana tidak ada kode solusi untuk init array dengan jangkauan, dan menggunakan $index + namun banyak hal yang ingin aku diimbangi dengan:
Metode definisi
Kode di bawah ini mendefinisikan sebuah metode
range()
tersedia untuk seluruh lingkup dari aplikasi andaMyApp
. Perilaku ini sangat mirip dengan Python [range()
][1] metode.Anda dapat menggunakan 'setelah' atau 'sebelum' filter di sudut.modul filter (https://github.com/a8m/angular-filter)
HTML:
hasil: 5, 6, 7, 8, 9, 10
Tanpa ada perubahan pada controller anda, anda dapat menggunakan ini:
Nikmati!
Terpendek jawaban: 2 baris kode
JS (dalam AngularJS controller)
HTML
...di mana
myCount
adalah jumlah bintang yang akan muncul di lokasi ini.Anda dapat menggunakan
$index
untuk setiap pelacakan operasi. E. g. jika anda ingin mencetak beberapa mutasi pada indeks, anda mungkin menempatkan berikut didiv
:Hi anda dapat mencapai ini dengan menggunakan html murni menggunakan AngularJS (TIDAK ada Petunjuk yang diperlukan!)
Sangat sederhana:
Menggunakan UnderscoreJS:
Menerapkan ini ke
$rootScope
membuatnya tersedia di mana-mana:Saya mencoba yang berikut ini dan itu bekerja dengan baik bagi saya:
Sudut 1.3.6
Peningkatan @Mormegil's solusi
penggunaan
3 2 1 0 -1 -2 -3
-3 -2 -1 0 1 2 3
0 1 2 3
0 -1 -2 -3
Mengatur ruang Lingkup dalam controller
Terlambat ke pesta. Tapi akhirnya aku hanya melakukan ini:
Di controller:
Html:
Ini adalah jzm's peningkatan menjawab (saya tidak bisa komentar lagi saya akan komentar nya/jawaban-nya karena s/ia termasuk kesalahan). Fungsi memiliki start/end range nilai, sehingga's lebih fleksibel, dan... kerjanya. Kasus ini adalah untuk hari bulan ini: