Ng-options и ng-model в angularjs?

Есть разметка

{{SelectedSemester}} -тут всё хорошо отображается
    <select ng-model="SelectedSemester" ng-change="" ng-options="semester.Id as semester.Name for semester in DataService.GET_SemestersList()">
    <button ng-click="group_create_show()">показать</button>


и код

$scope.group_create_show= function() { 
      alert($scope.SelectedSemester) // а здесь не выводится пробовал $scope.SelectedSemester.Id
    }

DataService.GET_SemestersList() возвращает список семестров

Пересмотрел всю документацию. Везде работает, а здесь нет. Странно.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Это самая типичная ошибка начинающих в Angular. Скоупы не умеют наследовать скаляры. Что-то чуть выше по иерархии скорее всего создало свой скоуп, и в контроллере его предок.

Решения два:
- использовать объекты-хранилища аля data. SelectedSemester
- не использовать скоуп в контроллере и обратиться к controllerAs синтаксису, тогда все будет хорошо так как контроллер будет засунут в скоуп по алиасу и, поскольку контроллер это объект передающийся по ссылке, значения будут наследоваться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы