Angular2 अगर ngModel का उपयोग किसी फॉर्म टैग में किया जाता है, तो या तो नाम विशेषता सेट होनी चाहिए या फ़ॉर्म




angular2-template angular-forms (8)

मुझे यह त्रुटि कोणीय 2 से मिल रही है

core.umd.js: 5995 EXCEPTION: बिना शर्त (वादा में): त्रुटि: ऐप में त्रुटि / model_exposure_currencies / model_exposure_currencies.component.html: 57: 18 कारण: यदि ngModel का उपयोग किसी प्रपत्र टैग में किया जाता है, तो या तो नाम विशेषता होनी चाहिए सेट या प्रपत्र नियंत्रण को ngModelOptions में 'स्टैंडअलोन' के रूप में परिभाषित किया जाना चाहिए।

      Example 1: <input [(ngModel)]="person.firstName" name="first">
      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">
<td *ngFor="let lag of ce.lags">
    <div class="form-group1">
        <input name="name" [(ngModel)]="lag.name" [ngModelOptions]="{standalone: true}"  class="form-control" pattern="[0-9]*(\.[0-9]+)?" required>
    </div>

</td>

इस प्रकार मैं फॉर्म टैग का उपयोग करता हूं:

 <form #f="ngForm" (ngSubmit)="onSubmit()">

आप जिस रूप में चाहते हैं, उस जानकारी को प्रदर्शित करने में सक्षम होने के लिए, आपको ब्याज नामों के उन विशिष्ट इनपुट को देने की आवश्यकता है। मेरा सुझाव है कि आप क्या करें:

<form #f="ngForm" (ngSubmit)="onSubmit(f)"> ...
<input **name="firstName" ngModel** placeholder="Enter your first name"> ...

आपको अपने पृष्ठ में @ कोणीय / रूपों से {NgForm} आयात की आवश्यकता है;

कोड HTML:

<form #values="ngForm" (ngSubmit)="function(values)">
 ...
 <ion-input type="text" name="name" ngModel></ion-input>
 <ion-input type="text" name="mail" ngModel></ion-input>
 ...
</form>

अपने Page.ts में, फ़ॉर्म डेटा में हेरफेर करने के लिए अपने कवक को लागू करें:

function(data) {console.log("Name: "data.value.name + " Mail: " + data.value.mail);}

इसे इस्तेमाल करे...

    <input type="text" class="form-control" name="name" placeholder="Name"
                  required minlength="4" #name="ngModel"
                  ngModel>
                  <div *ngIf="name.errors && (name.dirty || name.touched)">
                      <div [hidden]="!name.errors.required" class="alert alert-danger form-alert">
                          Please enter a name.
                      </div>
                      <div [hidden]="!name.errors.minlength" class="alert alert-danger form-alert">
                          Enter name greater than 4 characters.
                      </div>
                  </div>

उन सभी के लिए जो स्वयं त्रुटि संदेश से नहीं घबराते हैं, लेकिन स्पष्टीकरण के लिए सिर्फ गुगली करते हैं कि यहां से उदाहरण क्यों काम नहीं करता है (यानी पाठ क्षेत्र में पाठ टाइप किए जाने पर डायनेमिक फ़िल्टरिंग नहीं होती है): यह काम नहीं करेगा जब तक आप इनपुट फ़ील्ड में नाम पैरामीटर नहीं जोड़ेंगे। कुछ भी नहीं समझाता है कि पाइप क्यों काम नहीं कर रहा है, लेकिन त्रुटि संदेश इस विषय की ओर इशारा करता है और स्वीकृत उत्तर के अनुसार इसे ठीक करने से डायनामिक फ़िल्टर काम करता है।


जैसा कि प्रत्येक डेवलपर की एक सामान्य आदत होती है, पूर्ण त्रुटि को पढ़ने के लिए नहीं, बस पहली पंक्ति पढ़ें और किसी और से उत्तर की तलाश शुरू करें :) :) मैं भी उनमें से एक हूं, इसीलिए मैं यहां हूं:

त्रुटि पढ़ें, स्पष्ट रूप से कह रहे हैं:

Example 1: <input [(ngModel)]="person.firstName" name="first">
Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">

इस त्रुटि को समझने के लिए हमें और क्या चाहिए?

किसी भी एक विकल्प का उपयोग करें सब कुछ सुचारू रूप से काम करेगा।


दोनों विशेषताओं की आवश्यकता है और सभी प्रकार के तत्वों की "नाम" विशेषता भी है। यदि आप फ़ॉर्म सबमिट अवधारणा का उपयोग कर रहे हैं, तो अन्य बुद्धिमान फ़ॉर्म तत्व के बजाय div टैग का उपयोग करते हैं।

<input [(ngModel)]="firstname" name="something">

मेरे लिए, समाधान बहुत सरल था। मैंने <div> टैग को <div> में बदल दिया और त्रुटि दूर हो गई।


मैंने देखा कि क्रोम डेवलपर टूल कभी-कभी केवल स्वैगली लाल में पहले तत्व को रेखांकित करता है, भले ही वह सही ढंग से एक नाम के साथ सेट किया गया हो। इसने मुझे थोड़ी देर के लिए दूर फेंक दिया।

किसी प्रपत्र में प्रत्येक तत्व में एक नाम जोड़ना सुनिश्चित करना चाहिए जिसमें ngModel शामिल है, जिसकी परवाह किए बिना किसी को भी रेखांकित किया जाए।