Frage

Ich versuche, mit Angular einen Standardwert in einem SELECT-Element zu haben, aber es scheint nicht zu funktionieren.Egal was ich mache, es wählt immer ein leeres Standardelement aus, wenn die Daten remote in den Controller geladen werden

Hier ist mein HTML:

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

Hier ist der relevante Controller-Code:

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

Mir ist klar, dass diese Frage schon oft gestellt wurde und ich habe alle anderen Fragen gelesen, aber keiner der Vorschläge scheint zu funktionieren.Wenn jemand weitere Vorschläge hat, lassen Sie es mich bitte wissen.

Danke.

War es hilfreich?

Lösung

Das Problem ist das Versprechen. $scope.Domains ist versprochen und muss noch gelöst werden.Also, $scope.Domains[0] ist zu diesem Zeitpunkt undefiniert.

Der richtige Code lautet also wie folgt

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

Plunkr-Version - http://plnkr.co/edit/ppjSWDKT4lHWvEcY0PMC?p=preview

Beziehen auf https://github.com/angular/angular.js/issues/4298, ng-init ist nicht mehr in der Lage, Versprechen einzulösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top