Angularjs sélectionne la valeur par défaut lors du chargement à distance
-
21-12-2019 - |
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.
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.