select 요소를 객체 목록에 바인딩하고 싶습니다.
@Component({
selector: 'myApp',
template: `<h1>My Application</h1>
<select [(ngModel)]="selectedValue">
<option *ngFor="#c of countries" value="c.id">{{c.name}}</option>
</select>`
})
export class AppComponent{
countries = [
{id: 1, name: "United States"},
{id: 2, name: "Australia"}
{id: 3, name: "Canada"},
{id: 4, name: "Brazil"},
{id: 5, name: "England"}
];
selectedValue = null;
}
이 경우 selectedValue
선택한 항목의 ID 인 숫자로 나타납니다 .
그러나 실제로 국가 개체 자체에 바인딩 selectedValue
하여 ID가 아닌 개체가되도록하고 싶습니다 . 옵션 값을 다음과 같이 변경하려고했습니다.
<option *ngFor="#c of countries" value="c">{{c.name}}</option>
그러나 이것은 작동하지 않는 것 같습니다. 내 물건을 놓는 것처럼 보이지만 selectedValue
내가 기대하는 물건은 아닙니다. 내 Plunker 예제에서 이것을 볼 수 있습니다 .
또한 선택된 id를 기반으로 객체를 직접 설정할 수 있도록 change 이벤트에 바인딩을 시도했습니다. 그러나 바인딩 된 ngModel이 업데이트되기 전에 변경 이벤트가 발생하는 것으로 보입니다. 즉, 해당 시점에서 새로 선택한 값에 액세스 할 수 없습니다.
선택 요소를 Angular 2를 사용하여 객체에 바인딩하는 명확한 방법이 있습니까?