(change)
클래식 입력 변경 이벤트에 바인딩 된 이벤트입니다.
https://developer.mozilla.org/en-US/docs/Web/Events/change
입력에 모델이없는 경우에도 (변경) 이벤트를 사용할 수 있습니다
<input (change)="somethingChanged()">
(ngModelChange)
는 IS @Output
ngModel 지시어가. 모델이 변경되면 시작됩니다. ngModel 지시문이 없으면이 이벤트를 사용할 수 없습니다.
https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L124
소스 코드에서 더 많은 것을 발견 (ngModelChange)
하면 새로운 값을 내 보냅니다.
https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L169
따라서 다음과 같은 사용 능력이 있음을 의미합니다.
<input (ngModelChange)="modelChanged($event)">
modelChanged(newObj) {
// do something with new value
}
기본적으로, 둘 사이에는 큰 차이가없는 것처럼 보이지만 ngModel
이벤트를 사용할 때 이벤트가 힘을 얻습니다 [ngValue]
.
<select [(ngModel)]="data" (ngModelChange)="dataChanged($event)" name="data">
<option *ngFor="let currentData of allData" [ngValue]="currentData">
{{data.name}}
</option>
</select>
dataChanged(newObj) {
// here comes the object as parameter
}
" ngModel
것" 없이 같은 것을 시도한다고 가정
<select (change)="changed($event)">
<option *ngFor="let currentData of allData" [value]="currentData.id">
{{data.name}}
</option>
</select>
changed(e){
// event comes as parameter, you'll have to find selectedData manually
// by using e.target.data
}