Angularjs seleccione predeterminado cuando se carga de forma remota
-
21-12-2019 - |
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.
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.