Angularjs seleccione predefinido quando o carregamento remotamente
-
21-12-2019 - |
Pergunta
Eu estou tentando ter um valor padrão em um elemento SELECT usando angular, e ele não parece estar funcionando.Não importa o que eu faça, ele sempre seleciona um padrão em branco elemento, quando carregados os dados remotamente no controlador
Aqui está o meu HTML:
<select
ng-options="Domain.Name for Domain in Domains"
ng-model="CurrentDomain"
ng-init="CurrentDomain = Domains[0]"
></select>
Aqui está o relevante controlador de código:
$scope.Domains = $resource('api/domain').query();
$scope.CurrentDomain = $scope.Domains[0];
Sei que esta pergunta tem sido feita muitas vezes, e eu já leu todas as outras perguntas, mas nenhuma das sugestões parecem funcionar.Se alguém tiver alguma outra sugestão, por favor me avise.
Obrigado.
Solução
O problema é a promessa. $scope.Domains
é promessa e pendentes para resolver.Assim, $scope.Domains[0]
é indefinido, em que ponto do tempo.
Assim, o código correto é como abaixo
var Domains = $resource('api/domain').query(function(){
$scope.Domains = Domains;
$scope.CurrentDomain = Domains[0];
});
Plunkr versão http://plnkr.co/edit/ppjSWDKT4lHWvEcY0PMC?p=preview
Consulte https://github.com/angular/angular.js/issues/4298, ng-init
não é mais capaz de resolver promessa.