Saya tahu bahwa kita dapat dengan mudah menggunakan ng-repeat untuk objek json atau array seperti:
<div ng-repeat="user in users"></div>
tapi bagaimana kita bisa menggunakan ng-repeat untuk kamus, misalnya:
var users = null;
users["182982"] = "{...json-object...}";
users["198784"] = "{...json-object...}";
users["119827"] = "{...json-object...}";
Saya ingin menggunakannya dengan kamus pengguna:
<div ng-repeat="user in users"></div>
Apa itu mungkin?. Jika ya, bagaimana saya bisa melakukannya di AngularJs?
Contoh untuk pertanyaan saya: Di C # kami mendefinisikan kamus seperti:
Dictionary<key,value> dict = new Dictionary<key,value>();
//and then we can search for values, without knowing the keys
foreach(var val in dict.Values)
{
}
Apakah ada fungsi bawaan yang mengembalikan nilai dari kamus seperti di c #?
Jawaban:
Kamu bisa memakai
Lihat dokumentasi ngRepeat . Contoh: http://jsfiddle.net/WRtqV/1/
sumber
Saya juga ingin menyebutkan fungsionalitas baru AngularJS
ng-repeat
, yaitu, titik awal dan akhir pengulangan khusus . Fungsionalitas itu ditambahkan untuk mengulang serangkaian elemen HTML, bukan hanya satu elemen HTML induk .Untuk menggunakan titik awal dan akhir pengulang Anda harus mendefinisikannya dengan menggunakan
ng-repeat-start
danng-repeat-end
masing-masing arahan.The
ng-repeat-start
direktif bekerja sangat mirip denganng-repeat
direktif. Perbedaannya adalah bahwa ini akan mengulangi semua elemen HTML (termasuk tag yang telah ditetapkannya) hingga tag HTML yang berakhir di manang-repeat-end
ditempatkan (termasuk tag denganng-repeat-end
).Kode sampel (dari pengontrol):
Contoh template HTML:
Output akan terlihat mirip dengan yang berikut ini (tergantung pada gaya HTML):
Seperti yang Anda lihat,
ng-repeat-start
ulangi semua elemen HTML (termasuk elemen denganng-repeat-start
). Semuang-repeat
properti khusus (dalam hal ini$first
dan$index
) juga berfungsi seperti yang diharapkan.sumber
<div ng-repeat-end>..</div>
di markup AndaPengembang JavaScript cenderung merujuk pada struktur data di atas sebagai objek atau hash alih-alih Kamus.
Sintaks Anda di atas salah saat Anda menginisialisasi
users
objek sebagai nol. Saya kira ini salah ketik, karena kode harus dibaca:Untuk mengambil semua nilai dari hash, Anda harus mengulanginya menggunakan for for:
Jika Anda berencana untuk melakukan banyak pekerjaan dengan struktur data dalam JavaScript maka perpustakaan underscore.js pasti layak untuk dilihat. Garis bawah dilengkapi dengan
values
metode yang akan melakukan tugas di atas untuk Anda:Saya tidak menggunakan Angular sendiri, tapi saya cukup yakin akan ada metode kenyamanan yang dibangun untuk mengulangi nilai hash (ah, ini dia, Artem Andreev memberikan jawaban di atas :))
sumber
Dalam Angular 7, contoh sederhana berikut ini akan berfungsi (dengan asumsi kamus dalam variabel yang disebut
d
):my.component.ts:
my.component.html: (akan menampilkan daftar kunci: pasangan nilai)
sumber