मैं Angular 4 का उपयोग कर रहा हूं और मुझे कंसोल में एक त्रुटि मिल रही है:
'NgModel' के लिए बाध्य नहीं किया जा सकता क्योंकि यह 'इनपुट' की ज्ञात संपत्ति नहीं है
मैं इसे कैसे हल करूं?
मैं Angular 4 का उपयोग कर रहा हूं और मुझे कंसोल में एक त्रुटि मिल रही है:
'NgModel' के लिए बाध्य नहीं किया जा सकता क्योंकि यह 'इनपुट' की ज्ञात संपत्ति नहीं है
मैं इसे कैसे हल करूं?
जवाबों:
प्रपत्र इनपुट के लिए दो-तरफ़ा डेटा बाइंडिंग का उपयोग करने के लिए आपको FormsModule
अपने कोणीय मॉड्यूल में पैकेज को आयात करना होगा ।
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
]
संपादित करें
चूंकि एक ही समस्या के साथ बहुत सारे डुप्लिकेट प्रश्न हैं, इसलिए मैं इस उत्तर को बढ़ा रहा हूं।
इसके दो संभावित कारण हैं
गुम है FormsModule
, इसलिए इसे अपने मॉड्यूल में जोड़ें,
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
]
[(ngModel)]
इनपुट टैग में वाक्य रचना / वर्तनी की जाँच करें
यह एक सही उत्तर है। आपको प्रपत्र आयात करने की आवश्यकता है
पहले app.module.ts में
**
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
FormsModule,
ReactiveFormsModule ,
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
** app.component.spec.ts में दूसरा
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
import { FormsModule } from '@angular/forms';
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule,
FormsModule
],
declarations: [
AppComponent
],
}).compileComponents();
}));
सबसे अच्छा संबंध और आशा सहायक होगा
आपका ngModel
काम नहीं हो रहा है क्योंकि यह आपके NgModule
अभी तक का हिस्सा नहीं है।
आपको यह बताना होगा NgModule
कि आपके पास ngModel
पूरे ऐप का उपयोग करने का अधिकार है , आप इसे FormsModule
अपने app.module.ts
-> imports
-> में जोड़कर कर सकते हैं []
।
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [ FormsModule ], // HERE
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
कर्म / चमेली के साथ अपने कोणीय 6 ऐप का परीक्षण करते समय मैं इस त्रुटि में भाग गया। मैंने पहले ही FormsModule
अपने शीर्ष-स्तरीय मॉड्यूल में आयात कर लिया था । लेकिन जब मैंने एक नया घटक जोड़ा जो [(ngModel)]
मेरे परीक्षणों का उपयोग करता था वह विफल होने लगा। इस मामले में, मुझे FormsModule
अपने में आयात करने की आवश्यकता थी TestBed
TestingModule
।
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
FormsModule
],
declarations: [
RegisterComponent
]
})
.compileComponents();
}));
इसे app.module.ts
जोड़ें:
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
declarations: [AppComponent],
imports: [FormsModule],
})
जोड़ने का प्रयास करें
मॉड्यूल स्तर में ngModel
कोड ऊपर जैसा है
कोणीय 7.xx के साथ अपडेट करें , मेरे एक मॉड्यूल में एक ही मुद्दे का सामना करें ।
यदि यह आपके स्वतंत्र मॉड्यूल में निहित है, तो इन अतिरिक्त मॉड्यूलों को जोड़ें:
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
@NgModule({
imports: [CommonModule, FormsModule], // the order can be random now;
...
})
यदि यह आपके अंदर निहित है app.module.ts
, तो इन मॉड्यूल को जोड़ें:
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [ FormsModule, BrowserModule ], // order can be random now
...
})
मामले को साबित करने के लिए एक सरल डेमो ।
मेरे लिए उत्तर की गलत वर्तनी थी ngModel
। मैंने इसे इस तरह लिखा था: ngModule
जबकि यह होना चाहिए ngModel
।
अन्य सभी प्रयास स्पष्ट रूप से मेरे लिए त्रुटि को हल करने में विफल रहे।
import { FormsModule } from '@angular/forms';
// <<<< इसे यहाँ आयात करें
BrowserModule, FormsModule
// <<<< और यहाँ
तो बस app.module.ts
या किसी अन्य मॉड्यूल फ़ाइल की तलाश करें और सुनिश्चित करें कि आपने में FormsModule
आयात किया है ...
app.module.ts में आयात फार्म मॉड्यूल।
import { FormsModule} from '@angular/forms';
@NgModule({
declarations: [
AppComponent,
ContactsComponent
],
imports: [
BrowserModule,HttpModule,FormsModule //Add here form module
],
providers: [],
bootstrap: [AppComponent]
})
Html में:
<input type="text" name="last_name" [(ngModel)]="last_name" [ngModelOptions]="{standalone: true}" class="form-control">
मेरे मामले में मैं चूक गया था, मैं एम ओडेल के ngmodel istead के रूप में उल्लेख कर रहा था :) आशा है कि यह मदद करता है!
अपेक्षित - [(ngModel)] वास्तविक - [(ngmodel)]
यदि दो तरह से बंधन काम नहीं करता है, तो आपको निम्नलिखित चीजों को सत्यापित करना चाहिए।
Html में ngModel को इस तरह कहा जाना चाहिए। इनपुट तत्व की अन्य विशेषता पर कोई निर्भरता नहीं है
<input [(ngModel)]="inputText">
सुनिश्चित करें कि FormsModule को मॉड्यूल फ़ाइल में आयात किया गया है
app.modules.ts
import { FormsModule } from '@angular/forms';
@NgModule({
declarations: [
AppComponent,
HomeComponent // suppose, this is the component in which you are trying to use two ay binding
],
imports: [
BrowserModule,
FormsModule,
// other modules
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
सुनिश्चित करें कि जिस घटक में आप दो तरह से बाइंडिंग का उपयोग करने की कोशिश कर रहे हैं, बाइंडिंग को घोषणाओं में जोड़ा गया है। पिछले बिंदु # 2 में कोड जोड़ा गया
यह सब कुछ है जो आपको ngModel काम का उपयोग करके दो तरह से बाध्यकारी बनाने की आवश्यकता है, यह कोणीय 9 तक मान्य है
यदि आप प्रपत्र इनपुट के लिए दो-तरफ़ा डेटा बाइंडिंग का उपयोग करना चाहते हैं, तो आपको अपने कोणीय मॉड्यूल में theFormsModule पैकेज को आयात करना होगा। अधिक जानकारी के लिए, कोणीय 2 आधिकारिक ट्यूटोरियल यहां देखें और प्रपत्रों के लिए आधिकारिक दस्तावेज
app.module.ts में नीचे लाइनें जोड़ें:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
पहले FormsModule आयात करें और फिर अपने कंपोनेंट में ngModel का उपयोग करें
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
];
HTML कोड:
<input type='text' [(ngModel)] ="usertext" />
यदि फॉर्ममोड्यूल आयात करने के बाद भी समस्या बनी रहती है, तो जांच लें कि आपके इनपुट में पृष्ठ पर किसी अन्य इनपुट के बराबर मूल्य वाला "नाम" विशेषता नहीं है ।
FormsModule
होगाimports: []
जहां आप उपयोग करते हैंngModel
। अन्यथा अपना कोड पोस्ट करें।