Angularjs выбирает значение по умолчанию при удаленной загрузке

StackOverflow https://stackoverflow.com//questions/25027407

Вопрос

Я пытаюсь установить значение по умолчанию в элементе SELECT, используя angular, и, похоже, оно не работает.Независимо от того, что я делаю, он всегда выбирает пустой элемент по умолчанию, когда данные загружаются удаленно в контроллер.

Вот мой HTML:

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

Вот соответствующий код контроллера:

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

Я понимаю, что этот вопрос задавался много раз, и я прочитал все остальные вопросы, но ни одно из предложений, похоже, не работает.Если у кого-то есть другие предложения, пожалуйста, дайте мне знать.

Спасибо.

Это было полезно?

Решение

Проблема в обещании. $scope.Domains является обещанием и ожидает решения.Так, $scope.Domains[0] в данный момент времени не определено.

Итак, правильный код приведен ниже

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

Версия Планкра - http://plnkr.co/edit/ppjSWDKT4lHWvEcY0PMC?p=preview

Ссылаться на https://github.com/angular/angular.js/issues/4298, ng-init больше не может выполнить обещание.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top