У меня есть несколько тегов select, которые отображают список параметров, эти теги select будут инициализированы некоторым значением, определенным в массиве, но, похоже, что ng-model не работает в моем случае, вот мой код:
<div ng-repeat="choice in choices">
<select
ng-model="choice.competence.codeCompetence"
ng-options="competence.id as competence.titre group by competence.group for competence in competences track by competence.id"> <input type="text" ng-model="choice.niveauRequis"> Ans --- Selected option : {{choice.competence.codeCompetence}}
</select>
</div>
И это jsfiddle, чтобы понять мою проблему:
http://jsfiddle.net/qWzTb/3628/
Как я могу решить эту проблему.
Вы должны выбрать между as
синтаксисе или track by
с track by
выражения. Использование их вместе создает несколько проблем.
Из документов:
"Будьте осторожны при использовании select as и track в одном выражении".
Кроме того, ng-repeat
создает ngModel
child scope
, поэтому у вас могут возникнуть проблемы с ngModel
. Всегда используйте dot rule
или controller as syntax
.
Пожалуйста, проверьте этот скрипт
Я удалил track by competence.id
и это, похоже, работает нормально.
Ваш массив competences
имеет свойство id
поэтому ваш track by
не нужен.
as
илиtrack by
, а не оба. Из документов : «Будьте внимательны при использовании select as и track by в одном выражении». , Кроме того,ng-repeat
создаетngModel
child scope
, поэтому у вас могут возникнуть проблемы сngModel
. Всегда используйтеdot rule
илиcontroller as syntax
.