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 синтаксису, тогда все будет хорошо так как контроллер будет засунут в скоуп по алиасу и, поскольку контроллер это объект передающийся по ссылке, значения будут наследоваться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы