Sudut-UI typeahead: menampilkan label tapi mengikat nilai hanya
Saya menggunakan Sudut-UI typeahead dengan cara sebagai berikut:
<input type="text" ng-model="myModel" typeahead="o.value as o.text for o in options | filter:$viewValue | limitTo:5" typeahead-editable="false" />
binded untuk model seperti:
var options = [
{"value": 1, "text": "value1"},
{"value": 2, "text": "value2"},
...
];
Itu benar menunjukkan pilihan teks, tetapi ketika saya memilih sebuah item itu menunjukkan di dalam textbox nilai. Model ini benar dibatasi untuk nilai saja (tidak seluruh model objek).
Adalah mungkin untuk menunjukkan di dalam textbox "text" (bukan "nilai") setelah seleksi, masih mempertahankan model mengikat hanya nilai (yaitu: ketika saya pilih tertentu "text" model ini diperbarui dengan "nilai")?
51
6
It's tidak ideal, tapi typeahead-input-formatter atribut menyediakan pekerjaan-sekitar sampai perbaikan dapat diberikan. (Plunker dari github thread).
HTML:
AngularJs controller fungsi:
Cobalah mengubah kode dari
untuk
Anda dapat mencoba melakukan seperti yang disarankan, tapi dengan typeahead-di-pilih seperti
Ini akan memastikan bahwa teks atau label yang ditampilkan tetapi nilai yang mendasari berubah.
Di sini singkatan formatter untuk semua orang yang menggunakan lodash atau garis bawah:
dan html:
Yah, sejauh ini saya menemukan sebuah solusi yang mungkin melalui arahan.
HTML
DIREKTIF
Nah... jelas ini adalah hanya sebuah trik... aku ingin tahu jika ada yang lebih bersih, lebih banyak cara alami untuk melakukannya... tanpa mengubah kode atau menggunakan direktif...
bagi saya ini:
bukannya:
itu benar-benar berguna
aku punya json dibuat seperti ini:
dan berakhir pada sesuatu seperti memiliki menu dropdown dengan hanya RagioneSociale nilai dan model di mana aku bisa melihat kedua teks dan id dan mencetak mereka dengan normal {{asyncSelected}}