Tôi muốn liên kết một phần tử được chọn vào một danh sách các đối tượng - đủ dễ:
@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;
}
Trong trường hợp này, có vẻ như đó selectedValue
sẽ là một số - id của mục được chọn.
Tuy nhiên, tôi thực sự muốn liên kết với chính đối tượng quốc gia để đó selectedValue
là đối tượng chứ không chỉ là id. Tôi đã cố gắng thay đổi giá trị của tùy chọn như vậy:
<option *ngFor="#c of countries" value="c">{{c.name}}</option>
nhưng điều này dường như không hoạt động. Nó dường như đặt một đối tượng trong tôi selectedValue
- nhưng không phải là đối tượng mà tôi mong đợi. Bạn có thể thấy điều này trong ví dụ Plunker của tôi .
Tôi cũng đã thử liên kết với sự kiện thay đổi để tôi có thể tự đặt đối tượng dựa trên id đã chọn; tuy nhiên, có vẻ như sự kiện thay đổi sẽ kích hoạt trước khi ngModel bị ràng buộc được cập nhật - có nghĩa là tôi không có quyền truy cập vào giá trị mới được chọn tại thời điểm đó.
Có cách nào rõ ràng để liên kết một phần tử được chọn với một đối tượng với Angular 2 không?