Я создаю приложение, используя Angular 2 с TypeScript. У меня есть следующая таблица, которая содержит элемент управления select в одном из столбцов. Выбор содержимого управления привязывается к другому массиву строк -
<table ngControl="lstClasses" name="lstClasses">
<tr *ngFor="let class of model.Classes">
<td>{{class.Name}}</td>
<td>
<select name="cmbSection" [(ngModel)]="class.Section">
<option *ngFor="let section of sections"
[ngValue]="section">
{{section}}
</option>
</select>
</td>
</tr>
</table>
Где Class является объектом типа {Name: string, Section: string} - строка [] = ["Белый", "Синий", "Фиолетовый", "Зеленый", "Красный"].
Когда я изменяю выбранную опцию в любом из выпадающих списков любой строки, она правильно отражается в модели. Когда я сохраняю и обновляю данные, весь элемент управления выбора во всех рядах показывает выбранный параметр, который был сохранен с последней строкой в таблице.
Например, если я выбираю "Фиолетовый" в последней строке таблицы и сохраняю ее, когда данные обновляются, все строки показывают "Фиолетовый" в качестве выбранного параметра, хотя модель содержит правильные параметры.
Не могли бы вы помочь, если я ошибаюсь в этом.
Я думаю, что вы смотрите что-то вроде ниже,
<option *ngFor="let section of sections"
[value]="section"
[selected]="section == class.Section"
>
{{section}}
</option>
Вот Плункер!
Надеюсь это поможет!!