(change)
शास्त्रीय इनपुट परिवर्तन घटना के लिए बाध्य घटना।
https://developer.mozilla.org/en-US/docs/Web/Events/change
भले ही आपके इनपुट में मॉडल न हो, तब भी आप (परिवर्तन) घटना का उपयोग कर सकते हैं
<input (change)="somethingChanged()">
(ngModelChange)
है @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
}