Estou um pouco confuso com Angular e ng-options
.
Eu tenho uma matriz simples e quero iniciar uma seleção com ele. Mas, eu quero que as opções value = label.
script.js
$scope.options = ['var1', 'var2', 'var3'];
html
<select ng-model="myselect" ng-options="o for o in options"></select>
O que eu ganho:
<option value="0">var1</option>
<option value="1">var2</option>
<option value="2">var3</option>
O que eu quero:
<option value="var1">var1</option>
<option value="var2">var2</option>
<option value="var3">var3</option>
Então eu tentei:
<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>
(Mas não funcionou.)
Editar:
Meu formulário é enviado externamente, e é por isso que preciso de 'var1' como o valor em vez de 0.
fonte
value
no deleselect
.Você pode usar
ng-repeat
comoption
menos assim:Quando você envia seu
form
pode ocultar o valor da entrada.DEMO
ng- ng-repeat selecionado
fonte
você poderia usar algo como
usando ng-selected, você pré-seleciona a opção no caso de myselect ter sido pré-preenchido.
Eu prefiro esse método ao invés de ng-options, pois ng-options funciona apenas com matrizes. O ng-repeat também funciona com objetos do tipo json.
fonte
ng-options
também trabalha com fontes de dados de objetos. Veja docs.angularjs.org/api/ng/directive/selectSe você configurar o seu selecione da seguinte maneira:
você vai ter:
violino de trabalho: http://jsfiddle.net/x8kCZ/15/
fonte
$ scope.option será igual a 'var1' após a alteração, mesmo que você veja o valor = "0" no html gerado
plunker
fonte