Diberikan elemen pilih berikut
<select ng-options="size.code as size.name for size in sizes "
ng-model="item.size.code"
ng-change="update(MAGIC_THING)">
</select>
Apakah ada cara untuk mendapatkan MAGIC_THING agar sama dengan ukuran yang saat ini dipilih, jadi saya memiliki akses ke size.name
dan size.code
di controller saya?
size.code mempengaruhi banyak bagian lain dari aplikasi (url gambar, dll), tetapi ketika ng-model item.size.code
diperbarui, item.size.name
perlu diperbarui juga untuk pengguna yang menghadapi hal-hal. Saya berasumsi bahwa cara yang benar untuk melakukan ini adalah menangkap peristiwa perubahan dan mengatur nilai-nilai di dalam controller saya, tetapi saya tidak yakin apa yang bisa saya sampaikan ke pembaruan untuk mendapatkan nilai yang tepat.
Jika ini benar-benar cara yang salah untuk melakukannya, saya ingin tahu cara yang benar.
<select>
: ng-init = "item = size [0]"ng-model="selectedItem" ng-change="update(selectedItem)"
Anda juga dapat langsung mendapatkan nilai yang dipilih menggunakan kode berikut
script.js
sumber
Anda juga dapat mencoba ini:
sumber
Jika jawaban Divyesh Rupawala tidak berfungsi (melewati item saat ini sebagai parameter), maka silakan lihat
onChanged()
fungsinya di Plunker ini. Itu menggunakanthis
:http://plnkr.co/edit/B5TDQJ
sumber
sumber
Jika Anda ingin menulis, nama, id, kelas, banyak, diperlukan, Anda dapat menulis dengan cara ini.
sumber
Ini mungkin memberi Anda beberapa ide
.NET C # Lihat Model
.NET C # Pengontrol Api Web
Pengontrol Sudut:
Templat Sudut:
sumber
Anda perlu menggunakan "track by" agar objek dapat dibandingkan dengan benar. Kalau tidak, Angular akan menggunakan cara js asli untuk membandingkan objek.
Jadi kode contoh Anda akan berubah menjadi -
sumber
Filter AngularJS berhasil untuk saya.
Dengan asumsi
code/id
ini unik , kita bisa menyaring objek tertentu dengan AngularJS inifilter
dan bekerja dengan benda-benda sifat yang dipilih. Mempertimbangkan contoh di atas:Sekarang, ada 3 aspek penting untuk ini :
ng-init="search.code = item.size.code"
- padah1
elemen inisialisasiselect
kotak di luar , setel kueri filter ke opsi yang dipilih .ng-change="update(MAGIC_THING); search.code = item.size.code"
- ketika Anda mengubah input pilih, kami akan menjalankan satu baris lagi yang akan mengatur kueri "pencarian" ke yang saat ini dipilihitem.size.code
.filter:search:true
- Lulustrue
untuk memfilter untuk mengaktifkan pencocokan ketat .Itu dia. Jika
size.code
ini uniqueID , kita akan hanya memiliki satuh1
elemen dengan tekssize.name
.Saya sudah menguji ini di proyek saya dan berhasil.
Semoga berhasil
sumber
Ini adalah cara terbersih untuk mendapatkan nilai dari daftar opsi pilih sudut (selain Id atau Teks). Dengan asumsi Anda memiliki Pilih Produk seperti ini di halaman Anda:
Kemudian di Kontroler Anda mengatur fungsi panggilan balik seperti:
Cukup Dijelaskan: Karena acara ng-change tidak mengenali item-item opsi dalam pilih, kami menggunakan ngModel untuk menyaring Item yang dipilih dari daftar opsi yang dimuat dalam controller.
Selain itu, karena acara dipecat sebelum ngModel benar-benar diperbarui, Anda mungkin mendapatkan hasil yang tidak diinginkan, Jadi cara yang lebih baik adalah menambahkan batas waktu:
sumber