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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top