Estoy un poco confundido con Angular y ng-options
.
Tengo una matriz simple y quiero iniciar una selección con ella. Pero, quiero que las opciones valor = etiqueta.
script.js
$scope.options = ['var1', 'var2', 'var3'];
html
<select ng-model="myselect" ng-options="o for o in options"></select>
Lo que consigo:
<option value="0">var1</option>
<option value="1">var2</option>
<option value="2">var3</option>
Lo que quiero:
<option value="var1">var1</option>
<option value="var2">var2</option>
<option value="var3">var3</option>
Entonces intenté:
<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>
(Pero no funcionó).
Editar:
Mi formulario se envía externamente, por lo que necesito 'var1' como valor en lugar de 0.
fuente
value
en la suyaselect
.Se puede utilizar
ng-repeat
conoption
este aspecto:Cuando envía su
form
puede obtener el valor de la entrada oculta.DEMO
ng-seleccionado ng-repeat
fuente
podrías usar algo como
usando ng-selected preselecciona la opción en caso de que myselect se haya completado previamente
Prefiero este método sobre ng-options de todos modos, ya que ng-options solo funciona con matrices. ng-repeat también funciona con objetos similares a json.
fuente
ng-options
también funciona con fuentes de datos de objetos. Ver docs.angularjs.org/api/ng/directive/selectSi configura su selección de la siguiente manera:
conseguirás:
violín de trabajo: http://jsfiddle.net/x8kCZ/15/
fuente
$ scope.option será igual a 'var1' después del cambio, incluso verá value = "0" en el html generado
saqueador
fuente