Bir seçim öğesini bir nesne listesine bağlamak istiyorum - ki bu yeterince kolay:
@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;
}
Bu durumda, selectedValue
bir sayı gibi görünüyor - seçilen öğenin kimliği.
Ancak, aslında ülke nesnesinin kendisine bağlanmak istiyorum, bu yüzden selectedValue
sadece id'den ziyade nesne budur. Ben böyle seçeneğin değerini değiştirmeyi denedim:
<option *ngFor="#c of countries" value="c">{{c.name}}</option>
ama bu işe yaramıyor gibi görünüyor. Görünüşe göre bir nesne koyuyorum selectedValue
- ama beklediğim nesneyi değil. Bunu Plunker örneğimde görebilirsiniz .
Ben de seçilen kimliğe göre nesneyi kendim ayarlayabilmeniz için change olayına bağlanmayı denedim; Ancak, değişiklik olayı ilişkili ngModel güncellenmeden önce tetiklenir gibi görünüyor - yani o noktada yeni seçilen değere erişimim yok.
Seçili öğeyi Açısal 2 ile bir nesneye bağlamanın temiz bir yolu var mı?