2017-01-03 7 views
8

मैं एक कोणीय 2 अनुप्रयोग में एक फॉर्म बना रहा हूँ।कोणीय सबमिट और ngSubmit घटनाओं के बीच अंतर?

एचटीएमएल मुझे सबमिट घटना देता है। कोणीय में मैं एक घटना (सबमिट) घटना बाध्यकारी का उपयोग कर इस घटना को सुन सकता था। उस पर, कोणीय ngSubmit घटना जोड़ता है, जिसे मैं सुन सकता हूं, (ngSubmit) का उपयोग कर।

मैं समझता हूं कि सबमिट एचटीएमएल से आता है, और एनगुलर से एनजी सबमिट करें। जो मुझे समझ में नहीं आता है, मुझे सामान्य सबमिट ईवेंट की बजाय एक विशेष ngSubmit ईवेंट सुनने की आवश्यकता क्यों होगी।

मैंने plunker बनाया जो दोनों घटनाओं को सुनता है और दोनों एक ही काम करते हैं।

सुनने (सबमिट) और (ngSubmit) सुनने के बीच क्या अंतर है?

@Component({ 
    selector: 'my-app', 
    template: ` 
    <form (submit)='onSubmit(form)' (ngSubmit)='onNgSubmit(form)' novalidate #form='ngForm'> 
     <input type='text' name='input' [(ngModel)]='input' required> 
     <input type='submit' value='Submit' required> 
    </form> 
    `, 
}) 
export class App { 

    input : string; 

    onSubmit(form): void { 
    console.log(`submit: ${this.input}, valid: ${form.valid}`); 
    } 

    onNgSubmit(form): void { 
    console.log(`ng-submit: ${this.input}, valid: ${form.valid}`); 
    } 
} 
+0

मैं ही आप आशय प्रमाणकों कि कोणीय – JoeriShoeby

+0

कि तार्किक लगता है के साथ आते हैं उपयोग करने के लिए जब ngSubmit आवश्यक है से मार्गदर्शन ajax द्वारा सर्वर से सबमिट करें। लेकिन उपर्युक्त उदाहरण में, दोनों सबमिट और ऑनएनजी सबमिट विधियों में, $ form.valid पहले से ही सही ढंग से अपडेट किया गया है। तो फिर क्या अंतर है? –

उत्तर

1

submit: यह एचटीएमएल डिफ़ॉल्ट रूप घटना सबमिट करते हैं, यह अंतर्निहित विधि कॉल होगा जब प्रपत्र सबमिट किया जाता है।

ngSubmit:host bindingform तत्व पर स्थित है। मूल रूप से यह झूठी लौटकर ब्राउज़र के prevent default submit event (जो post हो सकता है)। आखिरकार आप फॉर्म लोड के कारण परंपरागत PostBack कॉल या पेज रीलोड को रोक सकते हैं। इस तरह आप अपने प्रपत्र & मान्य कर सकते हैं Component कोड

संबंधित मुद्दे