Estoy usando Angular JS y necesito establecer una opción seleccionada de un control de lista desplegable usando angular JS. Perdóname si esto es ridículo pero soy nuevo con Angular JS
Aquí está el control de la lista desplegable de mi html
<select ng-required="item.id==8 && item.quantity > 0" name="posterVariants"
ng-show="item.id==8" ng-model="item.selectedVariant"
ng-change="calculateServicesSubTotal(item)"
ng-options="v.name for v in variants | filter:{type:2}">
</select>
Después de que se llena, me sale
<select ng-options="v.name for v in variants | filter:{type:2}" ng-change="calculateServicesSubTotal(item)"
ng-model="item.selectedVariant" ng-show="item.id==8" name="posterVariants"
ng-required="item.id==8 && item.quantity > 0" class="ng-pristine ng-valid ng-valid-required">
<option value="?" selected="selected"></option>
<option value="0">set of 6 traits</option>
<option value="1">5 complete sets</option>
</select>
¿Cómo puedo configurar el control para value="0"
ser seleccionado?
<option value="0" ng-selected="true">set of 6 traits</option>
Respuestas:
Espero entender su pregunta, pero la
ng-model
directiva crea un enlace bidireccional entre el elemento seleccionado en el control y el valor deitem.selectedVariant
. Esto significa que cambiaritem.selectedVariant
JavaScript o cambiar el valor en el control actualiza el otro. Siitem.selectedVariant
tiene un valor de0
, ese elemento debe seleccionarse.Si
variants
es una matriz de objetos,item.selectedVariant
debe establecerse en uno de esos objetos. No sé qué información tiene en su alcance, pero aquí hay un ejemplo:JS:
HTML:
Esto dejaría el elemento "b" para ser seleccionado.
fuente
$scope
variable. Entonces, suponiendo que esté en un solo alcance, en su controlador, podría decir$scope.item.selectedVariant = 0
, para establecer el valor seleccionado predeterminado. También puede establecer la variable directamente en el control, en HTML, utilizando la directiva ng-init , ¡pero en mi opinión, eso se vuelve bastante complicado!variants
sobre su alcance? Tendría que estableceritem.selectedVariant
exactamente un elemento devariants
.No sé si esto ayudará a alguien o no, pero como estaba enfrentando el mismo problema, pensé en compartir cómo obtuve la solución.
Puede usar el seguimiento por atributo en su
ng-options
.Suponga que tiene:
Puedes mencionar tu
ng-options
como:Espero que esto ayude a alguien en el futuro.
fuente
ngModel
correctamente, pero no funcionó hasta que he añadido eltrack by
! ¡Gracias!Si le asigna el valor 0
item.selectedVariant
, debe seleccionarse automáticamente. Consulte la muestra en http://docs.angularjs.org/api/ng.directive:select que selecciona el color rojo de forma predeterminada simplemente asignando$scope.color='red'
.fuente
Veo que aquí ya escribí buenas respuestas, pero en algún momento escribir lo mismo en otra forma puede ser útil
fuente
Manera simple
Si tiene una respuesta de Usuarios o una Matriz / JSON que definió, Primero debe establecer el valor seleccionado en el controlador, luego debe poner el mismo nombre de modelo en html. Este ejemplo lo escribí para explicarlo de la manera más fácil.
Ejemplo simple
dentro del controlador:
Su HTML
ejemplo complejo
dentro del controlador:
Su HTML
fuente
Puede ser útil Las fijaciones de dosis no siempre funcionan.
Por ejemplo. Rellena el modelo de origen de la lista de opciones desde rest-service. El valor seleccionado se conocía antes de completar la lista y se estableció. Después de ejecutar la solicitud de reposo con la opción $ http list se debe hacer Pero la opción seleccionada no está configurada. Por razones desconocidas, AngularJS en shadow $ digest ejecutando no enlaza seleccionado como debe ser. Tengo que usar JQuery para configurar seleccionado. Es importante! Angular en sombra agrega el prefijo al valor de attr "value" para generar optinos ng-repeat. Para int es "número:".
fuente
Intenta lo siguiente:
Archivo JS
Archivo HTML
fuente
Este es el código que usé para el valor seleccionado
intente esto en un marco angular
fuente
JS:
fuente