Pregunta

Estoy tratando de tener un valor por defecto en un elemento de selección mediante angulares, y no parece estar funcionando.No importa lo que haga, siempre selecciona una predeterminado en blanco elemento, cuando se cargan los datos de forma remota en el controlador

Aquí está mi código HTML:

<select 
ng-options="Domain.Name for Domain in Domains"
ng-model="CurrentDomain"
ng-init="CurrentDomain = Domains[0]"
></select>

Aquí está el correspondiente controlador de código:

$scope.Domains = $resource('api/domain').query();
$scope.CurrentDomain = $scope.Domains[0];

Me doy cuenta de que esta pregunta se ha hecho muchas veces, y he leído todas las otras preguntas, pero ninguna de las sugerencias que parecen funcionar.Si alguien tiene alguna sugerencia, por favor hágamelo saber.

Gracias.

¿Fue útil?

Solución

El problema es la promesa. $scope.Domains es la promesa y a la espera de resolver.Así, $scope.Domains[0] no está definida en ese punto del tiempo.

Así, el código correcto es el siguiente

var Domains = $resource('api/domain').query(function(){
    $scope.Domains = Domains;
    $scope.CurrentDomain = Domains[0];
});

Plunkr de la versión http://plnkr.co/edit/ppjSWDKT4lHWvEcY0PMC?p=preview

Consulte https://github.com/angular/angular.js/issues/4298, ng-init ya no es capaz de resolver promesa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top