यदि आप उपयोग कर रहे हैं FormBuilder
, तो @ dfsq का उत्तर देखें।
यदि आप उपयोग नहीं कर FormBuilder
रहे हैं, तो परिवर्तनों को अधिसूचित करने के दो तरीके हैं।
विधि 1
जैसा कि प्रश्न पर टिप्पणियों में चर्चा की गई है, प्रत्येक इनपुट तत्व पर एक घटना बंधन का उपयोग करें । अपने टेम्पलेट में जोड़ें:
<input type="text" class="form-control" required [ngModel]="model.first_name"
(ngModelChange)="doSomething($event)">
फिर अपने घटक में:
doSomething(newValue) {
model.first_name = newValue;
console.log(newValue)
}
फार्म पेज ngModel बारे में अतिरिक्त जानकारी है कि यहां प्रासंगिक है:
ngModelChange
एक नहीं है<input>
तत्व घटना। यह वास्तव में NgModel
निर्देश की एक घटना संपत्ति है । जब एंगुलर फॉर्म में एक बाध्यकारी लक्ष्य देखता है [(x)]
, तो यह x
निर्देश देता है कि x
इनपुट संपत्ति और xChange
आउटपुट संपत्ति है।
अन्य विषमता, टेम्पलेट अभिव्यक्ति है model.name = $event
। हम $event
एक DOM इवेंट से आने वाली किसी वस्तु को देखने के लिए अभ्यस्त हैं। NgModelChange गुण DOM इवेंट का उत्पादन नहीं करता है; यह एक कोणीय EventEmitter
गुण है जो आग लगने पर इनपुट बॉक्स मान लौटाता है।
हम लगभग हमेशा पसंद करते हैं [(ngModel)]
। हम बंधन को विभाजित कर सकते हैं यदि हमें घटना से निपटने में कुछ विशेष करना था जैसे कि बहस या मुख्य स्ट्रोक को कुचलना।
आपके मामले में, मुझे लगता है कि आप कुछ विशेष करना चाहते हैं।
विधि 2
स्थानीय टेम्प्लेट चर को परिभाषित करें और इसे सेट करें ngForm
।
इनपुट तत्वों पर ngControl का उपयोग करें।
फॉर्म का NgForm निर्देश का एक संदर्भ पाएं @ViewChild का उपयोग करते हुए, फिर इसके लिए NgForm के ControlGill की सदस्यता लें:
<form #myForm="ngForm" (ngSubmit)="onSubmit()">
....
<input type="text" ngControl="firstName" class="form-control"
required [(ngModel)]="model.first_name">
...
<input type="text" ngControl="lastName" class="form-control"
required [(ngModel)]="model.last_name">
class MyForm {
@ViewChild('myForm') form;
...
ngAfterViewInit() {
console.log(this.form)
this.form.control.valueChanges
.subscribe(values => this.doSomething(values));
}
doSomething(values) {
console.log(values);
}
}
plunker
विधि 2 के बारे में अधिक जानकारी के लिए, सावकीन का वीडियो देखें ।
यह भी देखें कि आप valueChanges
अवलोकन के साथ क्या कर सकते हैं, इस पर अधिक जानकारी के लिए @ थिएरी का जवाब (जैसे कि प्रोसेसिंग में बदलाव से पहले थोड़ा सा इंतजार / इंतजार करना)।