Eu já vi a documentação da diretiva de seleção Angular aqui: http://docs.angularjs.org/api/ng.directive:select . Não consigo descobrir como definir o valor padrão. Isso é confuso:
selecione como rótulo para o valor na matriz
Aqui está o objeto:
{
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
}
O html (funcionando):
<select><option ng-repeat="value in prop.values">{{value}}</option></select>
e então estou tentando adicionar um atributo ng-option dentro do elemento select para definir prop.value
como a opção padrão (não está funcionando).
ng-options="(prop.value) for v in prop.values"
O que estou fazendo de errado?
ng-option
está substituindo os<option ng-repeat="value in prop.values">{{value}}</option>
agradecimentos novamente<select ng-model="limit" value="10" ng-options="v for v in [5,10,15,20,30,50]"></select>
A documentação angular para select * não responde explicitamente a essa pergunta, mas está lá. Se você olhar para o
script.js
, verá o seguinte:Este é o html:
Essa parece ser uma maneira mais óbvia de padronizar um valor selecionado em um
<select>
comng-options
. Também funcionará se você tiver valores / rótulos diferentes.*
Isto é do Angular 1.2.7fonte
Essa resposta é mais útil quando você está trazendo dados de um banco de dados, faz modificações e depois persiste as alterações.
Veja o exemplo aqui:
http://plnkr.co/edit/HrT5vUMJOtP9esGngbIV
fonte
fonte
Se sua matriz de objetos é complexa como:
E seu modelo atual foi definido para algo como:
Ajudou a usar a
track by
função no uuid (ou em qualquer campo exclusivo), desde que o ng-model = "user.friend" também tenha um uuid:fonte
Eu lutei com isso por algumas horas, então gostaria de acrescentar alguns esclarecimentos, todos os exemplos mencionados aqui referem-se a casos em que os dados são carregados a partir do próprio script, não a algo proveniente de um serviço ou banco de dados, então, gostaria de fornecer minha experiência para qualquer pessoa que tenha o mesmo problema que eu.
Normalmente você salva apenas o ID da opção desejada no seu banco de dados, então ... vamos mostrá-lo
service.js
controller.js
Finalmente, o html parcial model.html
basicamente, eu queria apontar essa peça " model.id_model como model.name para model nos modelos " the " model.id_model " usa o id do modelo para o valor, para que você possa combinar com o " mainObj.id_model ", que também é o " selected_model ", este é apenas um valor simples, também " as model.name " é o rótulo para o repetidor, finalmente " model in models " é apenas o ciclo regular que todos conhecemos.
Espero que isso ajude alguém e, se isso acontecer, vote: D
fonte
mainObj.id_model
diretamente (ng-model="mainObj.id_model"
), em vez de usar um 'espaço reservado / valor plain' variávelselected_model
Basta adicionar a opção com valor vazio. Vai funcionar.
DEMO Plnkr
fonte
<option value="" disabled>Please Select</option>
Uma maneira mais fácil de fazer isso é usar o data-ng-init como este:
A principal diferença aqui é que você precisaria incluir
data-ng-model
fonte
O atributo ng-model define a opção selecionada e também permite canalizar um filtro como orderBy: orderModel.value
index.html
controllers.js
fonte
angular.js:117 TypeError: a.forEach is not a function
. Alguma ideia?Se alguém estiver executando o valor padrão ocasionalmente não sendo preenchido na página no Chrome, IE 10/11, Firefox - tente adicionar este atributo ao seu campo de entrada / seleção, verificando a variável preenchida no HTML, da seguinte forma:
fonte
Realmente simples se você não se importa em indexar suas opções com algum ID numérico.
Declare sua matriz $ scope var - people
No DOM do escopo acima, crie um objeto
No seu controlador, você define seu ng-model "contratado".
Boa sorte!!! É realmente fácil!
fonte
Só para adicionar, eu fiz algo parecido com isto.
fonte