2017-01-12 5 views
0

У меня есть форма с выберите поле ввода, который основан на объектах:пре объекта выбора вход

<!-- 
this.options = [ 
    { name: 'Option A', id: 1 }, 
    { name: 'Option B', id: 2 }, 
    { name: 'Option C', id: 3 }, 
]; 
--> 

<form #optionForm="ngForm"> 
    <select [(ngModel)]="model.option" name="option"> 
    <option *ngFor="let option of options" [ngValue]="option"> 
     {{option.name}} 
    </option> 
    </select> 
</form> 

Первоначально моя модель устанавливается на один из этих вариантов, например:

this.model = { option: { name: 'Option B', id: 2 } }; 

Как я могу выделить этот объект в выбранном входе? Весь объект model.option должен быть выбран.

Plunker с примером компонента в src/app.ts.

ответ

0

Здесь внесены изменения https://plnkr.co/edit/YTMZ05Awd1AGDpds6QSO?p=preview.

<select [(ngModel)]="model.option.id" name="option"> 
     <option *ngFor="let option of options" [ngValue]="option.id"> 
      {{option.name}} 
     </option> 
</select> 

По сути вы хранили объект в ngValue, а не свойство (в вашем случае ид/имя). Надеюсь, это имеет смысл.

+0

С помощью '[ngValue]' вы можете удалить '.id' в' [(ngModel)] = "..." 'и' [ngValeu] = "..." 'и весь' model.option' значение заменяется вместо свойства 'id' –

+0

Это только изменяет идентификатор. Я хочу, чтобы весь объект {name, id} был выбран. – fwind

+0

@fwind вы попробовали, что я объясняю в своем комментарии выше? –

Смежные вопросы