Saya menggunakan ui-bootstrap typeahead sudut dan saya ingin menggunakannya sebagai cara untuk mengambil banyak pilihan, jadi saya perlu mendapatkan nilai yang dipilih saat metode selectMatch diluncurkan tetapi saya tidak dapat menemukan cara melakukannya yang di pengontrol saya
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<pre>Model: {{selected| json}}</pre>
<input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue">
Jika saya melihat nilai yang dipilih, saya mendapat perubahan setiap kali tombol ditekan ...
scope.$watch('selected', function(newValue, oldValue) {... });
Saya mengerti bahwa metode selectMatch adalah metode yang dipanggil ketika pengguna menekan enter atau mengklik daftar tetapi saya tidak tahu bagaimana cara memanggil balik itu ...
Terima kasih!
sumber
state.id as state.name for state in states
. Dalam hal$item
inistate
, $ modelstate.id
, dan$label
adalahstate.name
Sunting: metode ini bukan yang terbaik sekarang. Lebih baik menggunakan callback onSelect seperti yang dijelaskan pada jawaban di atas.
Saya menemukan bagaimana melakukan apa yang saya inginkan. Saya melihat bahwa ada atribut typeahead-editable dan jika disetel ke false maka nilai yang dipilih berubah hanya ketika nilai dari model dipilih. Dan jam tangan $ berfungsi dengan baik untuk memeriksa kapan nilai baru dipilih.
sumber
Berikut adalah HTML Anda
cukup tambahkan typeahead-on-select di tag input dengan fungsi callback.
Mengikuti akan masuk ke dalam pengontrol
inside $ item Anda akan mendapatkan seluruh objek yang telah Anda berikan di array utama daftar saran
sumber
coba hal berikut sebelum validasi
sumber