AngularJS. Cuando select tiene el atributo ng-model, ng-selected no funciona
angularjs-ng-model (2)
Estoy tratando de establecer
ng-selected
en mi elemento de
option
, el atributo
selected
se establece en
true
, pero la
option
no está seleccionada, cuando elimino
ng-model
de
select
todo funciona.
La pregunta
: ¿Cómo hacer la
option
seleccionada, cuando estoy usando el modelo?
Aquí está
mi plunker
(
selected
no funciona aquí)
Mi código:
var app = angular.module("plunker", []);
app.controller("TestController", ["$scope", function($scope) {
$scope.test = 1;
$scope.array = [
{"id": 1, "name": "first"},
{"id": 2, "name": "second"},
{"id": 3, "name": "third"}
];
}]);
Mi plantilla:
<body ng-controller="TestController">
Selected item must be {{ array[test-1].name }}
<select ng-model="myModel">
<option value="">Choose item..</option>
<option ng-repeat="item in array"
ng-value="item.id"
ng-selected="item.id == test">
{{ item.name }} ({{item.id == test}})
</option>
</select>
</body>
¡Muchas gracias por cualquier ayuda!
No use
ngSelected
con
ngModel
De los documentos:
Nota:
ngSelected
no interactúa con las directivas<select>
yngModel
, solo establece el atributo seleccionado en el elemento. Si está usandongModel
en la selección, no debe usarngSelected
en las opciones, ya quengModel
establecerá el valor de selección y las opciones seleccionadas.
Ver documentos adicionales:
-
Usando
ng-repeat
para generar opciones deselect
-
Usar select con
ng-options
y establecer un valor predeterminado
Ver :
No use ngSelected con ngRepeat. Ir con ngOptions:
<body ng-controller="TestController">
Selected item must be {{ array[test-1].name }}
<select ng-model="myModel" ng-options="item.id as item.name for item in array">
<option value="">Choose item..</option>
</select>
</body>