Domanda

Sto cercando di avere un valore predefinito in un elemento selezionato usando angolare e non sembra funzionare.Non importa cosa faccio, seleziona sempre un elemento predefinito vuoto, quando i dati vengono caricati da remoto nel controller

Ecco il mio html:

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

Ecco il codice del controller pertinente:

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

Mi rendo conto che questa domanda è stata posta molte volte, e ho letto tutte le altre domande, ma nessuno dei suggerimenti sembra funzionare.Se qualcuno ha altri suggerimenti, per favore fammi sapere.

Grazie.

È stato utile?

Soluzione

Il problema è la promessa.$scope.Domains è promessa e in attesa di risolvere.Quindi, $scope.Domains[0] non è definito in quel momento.

Quindi, il codice corretto è come sotto

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

Plunkr Version - http://plnkr.co/edit/ppjswdkt4lhwvecy0pmc?p=previeweleth

Fare riferimento a https://github.com/angular/angular.js/issues/4298 , ng-init non è più in grado di risolvere la promessa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top