AngularJS: ngOptions не работает (включая ngModel, используя синтаксис "контроллер как")
Я буду держать это коротким.
http://codepen.io/anon/pen/waXWpw?editors=101
Вот кое-что, что я сделал, что, я надеюсь, иллюстрирует мою проблему (я также надеюсь, что Plunker работает правильно...). Первый выпадающий список - это моя попытка, а другой - тот, который я взял у другого работающего Плункера, который здесь больше не работает...
Я просто не могу понять причину, почему это не работает. По сути, я хочу, чтобы пользователь мог выбрать количество раундов из выпадающего списка, но, что бы я ни пытался, я не могу заставить работать функции ngOptions. Я просто получаю "undefined" внутри выпадающего списка, и никаких других опций не появляется.
РЕДАКТИРОВАТЬ: я исправил Plunker, и внезапно ngOptions начал работать, так что теперь моя проблема в том, что я понятия не имею, как повторить мою проблему. Я должен включить свой фактический код здесь, чтобы посмотреть, сможет ли кто-нибудь обнаружить ошибку.
Чтобы было ясно, все остальное на странице функционирует нормально, включая ngMessages, ngAnimate, Angular UI и другие элементы формы, поэтому я буду включать только соответствующий HTML.
HTML:
<div ng-controller="CreateController as create">
<form name="creationForm" novalidate>
<div>
<select name="numberOfRounds"
ng-model="create.numberOfRounds"
ng-options="item.rounds as item.name for item in create.possibleNumbersOfRounds"
required>
</select>
<label>Number of Rounds</label>
</div>
</form>
</div>
JS (Контроллер):
angular
.module('TabIt')
.controller('CreateController', ['$state', '$scope', 'TournamentFactory', function ($state, $scope, TournamentFactory) {
this.possibleNumbersOfRounds = [
{ "rounds": 0, "name": "Please make a selection"},
{ "rounds": 2, "name": "2 rounds" },
{ "rounds": 3, "name": "3 rounds" },
{ "rounds": 4, "name": "4 rounds" },
{ "rounds": 5, "name": "5 rounds" },
{ "rounds": 6, "name": "6 rounds" },
{ "rounds": 7, "name": "7 rounds" },
{ "rounds": 8, "name": "8 rounds" },
{ "rounds": 9, "name": "9 rounds" }
];
this.numberOfRounds = this.possibleNumbersOfRounds[0].code;
}]);