Question

J'essaie d'avoir une valeur par défaut dans un élément SELECT en utilisant angulaire, et cela ne semble pas fonctionner.Quoi que je fasse, il sélectionne toujours un élément vide par défaut lorsque les données sont chargées à distance dans le contrôleur.

Voici mon HTML :

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

Voici le code du contrôleur correspondant :

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

Je me rends compte que cette question a été posée plusieurs fois et j'ai lu toutes les autres questions, mais aucune des suggestions ne semble fonctionner.Si quelqu'un a d'autres suggestions, faites-le-moi savoir.

Merci.

Était-ce utile?

La solution

Le problème, c'est la promesse. $scope.Domains est promis et en attente de résolution.Donc, $scope.Domains[0] n’est pas défini à ce moment-là.

Donc, le code correct est le suivant

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

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

Faire référence à https://github.com/angular/angular.js/issues/4298, ng-init n'est plus en mesure de tenir sa promesse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top