ฉันกำลังพยายามตรวจพบการเปลี่ยนแปลงngModel
ใน<select>
แท็ก ใน Angular 1.x เราอาจแก้ปัญหานี้ด้วยการ$watch
เปิดngModel
หรือใช้ngChange
แต่ฉันยังไม่เข้าใจวิธีตรวจจับการเปลี่ยนแปลงngModel
ใน Angular 2
ตัวอย่างเต็ม : http://plnkr.co/edit/9c9oKH1tjDDb67zdKmr9?p=info
import {Component, View, Input, } from 'angular2/core';
import {FORM_DIRECTIVES} from 'angular2/common';
@Component({
selector: 'my-dropdown'
})
@View({
directives: [FORM_DIRECTIVES],
template: `
<select [ngModel]="selection" (ngModelChange)="onChange($event, selection)" >
<option *ngFor="#option of options">{{option}}</option>
</select>
{{selection}}
`
})
export class MyDropdown {
@Input() options;
selection = 'Dog';
ngOnInit() {
console.log('These were the options passed in: ' + this.options);
}
onChange(event) {
if (this.selection === event) return;
this.selection = event;
console.log(this.selection);
}
}
ดังที่เราเห็นหากเราเลือกค่าที่แตกต่างจากดรอปดาวน์ngModel
การเปลี่ยนแปลงของเราและนิพจน์ที่ถูกแทรกในมุมมองจะสะท้อนถึงสิ่งนี้
ฉันจะรับแจ้งการเปลี่ยนแปลงนี้ในชั้นเรียน / คอนโทรลเลอร์ได้อย่างไร