Açısal 4 kullanıyorum ve konsolda bir hata alıyorum:
'İnput' öğesinin bilinen bir özelliği olmadığından 'ngModel' öğesine bağlanamıyor
Bunu nasıl çözebilirim?
Açısal 4 kullanıyorum ve konsolda bir hata alıyorum:
'İnput' öğesinin bilinen bir özelliği olmadığından 'ngModel' öğesine bağlanamıyor
Bunu nasıl çözebilirim?
Yanıtlar:
Form girişleri için iki yönlü veri bağlama özelliğini kullanabilmek için FormsModule
paketi Açısal modülünüze aktarmanız gerekir .
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
]
DÜZENLE
Aynı sorunla ilgili çok sayıda yinelenen soru olduğundan, bu yanıtı geliştiriyorum.
İki olası neden var
Eksik FormsModule
, dolayısıyla bunu Modülünüze ekleyin,
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
]
Giriş [(ngModel)]
etiketindeki sözdizimini / yazımını denetleyin
Bu doğru bir cevap. FormsMoudle'u içe aktarmanız gerekir
ilk olarak 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 dosyasında ikinci
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();
}));
Saygılarımla ve umut yardımcı olacaktır
Sizin ngModel
o aramalarınızdan bir parçası değil çünkü çalışmıyor NgModule
henüz.
Uygulamanız boyunca NgModule
kullanma yetkisine sahip olduğunuzu söylemelisiniz, -> -> içine ngModel
ekleyerek bunu yapabilirsiniz .FormsModule
app.module.ts
imports
[]
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [ FormsModule ], // HERE
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
Karma / Jasmine ile Angular 6 Uygulamamı test ederken bu hatayla karşılaştım. FormsModule
Üst düzey modülüme zaten aktarmıştım . Ancak yeni bir bileşen eklediğimde [(ngModel)]
testlerim başarısız oldu. Bu durumda, FormsModule
benim ithal etmek gerekiyordu TestBed
TestingModule
.
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
FormsModule
],
declarations: [
RegisterComponent
]
})
.compileComponents();
}));
Bunu app.module.ts
ekleyin:
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
declarations: [AppComponent],
imports: [FormsModule],
})
Eklemeyi deneyin
Modül düzeyinde model
Kod yukarıdakiyle aynı
Angular 7.xx ile güncelleyin, modüllerimden birinde aynı sorunla karşılaşın .
Bağımsız modülünüzde bulunuyorsa, şu ekstra modülleri ekleyin:
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
@NgModule({
imports: [CommonModule, FormsModule], // the order can be random now;
...
})
İçinde bulunuyorsa app.module.ts
şu modülleri ekleyin:
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [ FormsModule, BrowserModule ], // order can be random now
...
})
Davayı kanıtlamak için basit bir demo .
Benim için cevap yanlış yazılıştı ngModel
. Ben şöyle yazmıştım: ngModule
olması gerektiği gibi ngModel
.
Diğer tüm denemeler, hatayı benim için çözemedi.
import { FormsModule } from '@angular/forms';
// <<<< buraya aktar
BrowserModule, FormsModule
// <<<< ve burada
Yani sadece app.module.ts
veya başka bir modül dosyasını arar ve içeri aktardığınızdan emin olun FormsModule
...
form modülünü app.module.ts dosyasına aktar.
import { FormsModule} from '@angular/forms';
@NgModule({
declarations: [
AppComponent,
ContactsComponent
],
imports: [
BrowserModule,HttpModule,FormsModule //Add here form module
],
providers: [],
bootstrap: [AppComponent]
})
Html'de:
<input type="text" name="last_name" [(ngModel)]="last_name" [ngModelOptions]="{standalone: true}" class="form-control">
Benim durumumda yanlış yazdım, ben M odel ngmodel istead olarak bahsediyordum :) Umarım yardımcı olur!
Beklenen - [(ngModel)] Gerçek - [(ngmodel)]
İki yönlü ciltleme çalışmazsa, aşağıdakileri doğrulamanız gerekir.
HTML'de ngModel bu şekilde çağrılmalıdır. Girdi öğesinin diğer özniteliğine bağımlılık yoktur
<input [(ngModel)]="inputText">
Emin olun FormsModule modüller dosyasına aktarılır
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 { }
İki yönlü ciltleme için ngModel'i kullanmaya çalıştığınız bileşenin, bildirimlerine eklendiğinden emin olun. Bir önceki noktaya eklenen kod # 2
Bu, ngModel kullanarak iki yönlü ciltleme yapmak için yapmanız gereken her şeydir, bu açısal 9'a kadar doğrulanmıştır
Form girişleri için iki yönlü veri bağlama kullanmak istiyorsanız, Açısal modülünüzdeki FormsModule paketini içe aktarmanız gerekir. Daha fazla bilgi için buradaki Açısal 2 resmi eğiticisine ve formlar için resmi belgelere bakın
app.module.ts aşağıdaki satırları ekleyin:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
önce FormsModule'u içe aktarın ve ardından bileşeninizde ngModel kullanın.
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
];
HTML Kodu:
<input type='text' [(ngModel)] ="usertext" />
Form modülünü içe aktardıktan sonra bile sorun devam ederse, Girdinizin sayfadaki başka bir girdiye eşit değere sahip bir "ad" özelliği bulunmadığından emin olun .
FormsModule
içinimports: []
kullandığınız modülünngModel
. Aksi takdirde kodunuzu gönderin.