Saya sedikit bingung dengan Angular dan ng-options
.
Saya memiliki array sederhana dan saya ingin init pilih dengan itu. Tapi, saya ingin opsi nilai = label.
script.js
$scope.options = ['var1', 'var2', 'var3'];
html
<select ng-model="myselect" ng-options="o for o in options"></select>
Apa yang saya dapatkan:
<option value="0">var1</option>
<option value="1">var2</option>
<option value="2">var3</option>
Apa yang saya inginkan:
<option value="var1">var1</option>
<option value="var2">var2</option>
<option value="var3">var3</option>
Jadi saya mencoba:
<select ng-model="myselect2" ng-init=0 ng-options="options[k] as v for (k,v) in options"></select>
<select ng-model="myselect3" ng-init=0 ng-options="b as b for b in options"></select>
(Tapi itu tidak berhasil.)
Edit:
Formulir saya dikirimkan secara eksternal, itulah sebabnya saya perlu 'var1' sebagai nilai alih-alih 0.
sumber
value
di miliknyaselect
.Anda bisa menggunakannya
ng-repeat
denganoption
seperti ini:Saat Anda mengirimkan,
form
Anda bisa mendapatkan nilai input yang disembunyikan.DEMO
ng-terpilih ng-repeat
sumber
Anda bisa menggunakan sesuatu seperti
menggunakan ng-terpilih, Anda memilih pilihan dalam kasus myselect prefilled.
Saya lebih suka metode ini daripada ng-opsi, karena ng-opsi hanya berfungsi dengan array. ng-repeat juga berfungsi dengan objek seperti json.
sumber
ng-options
bekerja dengan sumber data objek juga. Lihat docs.angularjs.org/api/ng/directive/selectJika Anda mengatur pilihan Anda seperti berikut:
kamu akan mendapatkan:
working fiddle: http://jsfiddle.net/x8kCZ/15/
sumber
$ scope.option akan sama dengan 'var1' setelah perubahan, bahkan Anda melihat value = "0" dalam html yang dihasilkan
plunker
sumber