Saya mendapat kesalahan berikut ketika meluncurkan aplikasi Angular saya, meskipun komponen tidak ditampilkan.
Saya harus mengomentari <input>
agar aplikasi saya berfungsi.
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
<div>
<label>Created:</label>
<input type="text" [ERROR ->][(ngModel)]="test" placeholder="foo" />
</div>
</div>"): InterventionDetails@4:28 ; Zone: <root> ; Task: Promise.then ; Value:
Saya melihat plunker Pahlawan, tetapi saya tidak melihat perbedaan dari kode saya.
Ini adalah file komponen:
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Intervention } from '../../model/intervention';
@Component({
selector: 'intervention-details',
templateUrl: 'app/intervention/details/intervention.details.html',
styleUrls: ['app/intervention/details/intervention.details.css']
})
export class InterventionDetails
{
@Input() intervention: Intervention;
public test : string = "toto";
}
javascript
angular
typescript
input
Anthony Brenelière
sumber
sumber
Jawaban:
Ya itu saja, di app.module.ts, saya baru saja menambahkan:
sumber
[{ngModel}]
bukannya yang benar:[(ngModel)]
component.spec.ts
file juga.Agar dapat menggunakan pengikatan data dua arah untuk input formulir, Anda perlu mengimpor
FormsModule
paket dalamAngular
modul Anda . Untuk info lebih lanjut lihatAngular 2
tutorial resmi di sini dan dokumentasi resmi untuk formulirsumber
import { FORM_DIRECTIVES } from '@angular/forms';
dan menambahkanFORM_DIRECTIVES
ke arahan dan ya mengikat saya bekerja lagi (untuk menjadi jelas itu berfungsi sebelum rilis rc5)FORM_DIRECTIVES
sudah mati untuk berjagaUntuk menggunakan
[(ngModel)]
dalam Angular 2 , 4 & 5+ , Anda perlu mengimpor FormsModule dari ...Juga ada di jalur ini di bawah formulir dalam Angular repo di github :
Mungkin ini bukan kesenangan bagi pengembang AngularJs karena Anda dapat menggunakan ng-model di mana saja kapan saja sebelumnya, tetapi karena Angular mencoba memisahkan modul untuk menggunakan apa pun yang Anda ingin Anda gunakan pada saat itu, ngModel ada di FormsModule sekarang .
Juga jika Anda menggunakan ReactiveFormsModule, perlu mengimpornya juga.
Jadi cukup mencari app.module.ts dan pastikan Anda telah
FormsModule
mengimpor ...Juga ini adalah komentar awal saat ini untuk Angular4
ngModel
di FormsModule :Jika Anda ingin menggunakan masukan Anda, tidak dalam bentuk, Anda dapat menggunakannya dengan
ngModelOptions
dan membuat standalone benar ...Untuk info lebih lanjut, Lihatlah ng_model di bagian Angular di sini
sumber
Anda perlu mengimpor FormsModule
Buka app.module.ts
dan tambahkan baris
dan
sumber
Melempar ini bisa membantu seseorang.
Dengan asumsi Anda telah membuat NgModule baru, katakan
AuthModule
didedikasikan untuk menangani kebutuhan Auth Anda, pastikan untuk mengimporFormsModule
AuthModule itu juga .Jika Anda akan menggunakan
FormsModule
HANYA diAuthModule
maka Anda tidak perlu mengimporFormModule
IN defaultAppModule
Jadi sesuatu seperti ini di
AuthModule
:Kemudian lupakan tentang mengimpor
AppModule
jika Anda tidak menggunakanFormsModule
tempat lain.sumber
Contoh 1
Contoh 2
sumber
Impor FormsModule di modul-modul di mana Anda ingin menggunakan [(ngModel)]
sumber
Ada dua langkah yang perlu Anda ikuti untuk menyingkirkan kesalahan ini
pada dasarnya app.module.ts akan terlihat seperti di bawah ini:
Semoga ini bisa membantu
sumber
Anda perlu mengimpor FormsModule di modul root Anda jika komponen ini di root yaitu app.module.ts
Silakan buka app.module.ts
Impor FormsModule dari @ angular / form
Ex:
dan
sumber
Saya menggunakan Angular 7
Saya harus mengimpor ReactiveFormsModule karena saya menggunakan kelas FormBuilder untuk membuat formulir reaktif.
sumber
impor FormsModule di modul aplikasi Anda.
itu akan membiarkan aplikasi Anda berjalan dengan baik.
sumber
Jika Anda perlu menggunakan
[(ngModel)]
pertama yang Anda butuhkan untuk mengimporFormsModule
dalamapp.module.ts
dan kemudian menambahkan dalam daftar impor. Sesuatu seperti ini:app.module.ts
import {FormsModule} from "@angular/forms";
imports: [ BrowserModule, FormsModule ],
app.component.ts
<input type="text" [(ngModel)]="name" >
<h1>your name is: {{name}} </h1>
sumber
ngModel adalah bagian dari FormsModule. Dan itu harus diimpor dari @ angular / form untuk bekerja dengan ngModel.
Silakan ubah app.module.ts sebagai berikut:
sumber
Jika seseorang masih mendapatkan kesalahan setelah menerapkan solusi yang diterima, itu bisa jadi mungkin karena Anda memiliki file modul terpisah untuk komponen di mana Anda ingin menggunakan properti ngModel di tag input. Dalam hal itu, terapkan solusi yang diterima dalam file module.ts komponen juga.
sumber
Saya menggunakan Angular 5.
Dalam kasus saya, saya perlu mengimpor RactiveFormsModule juga.
app.module.ts (atau anymodule.module.ts)
sumber
ReactiveFormsModule
diperlukan saat Anda membutuhkanFormGroup, FormControl ,Validators
dll. Untuk menggunakanngModel
, Anda tidak perluReactiveFormsModule
.Saya tahu pertanyaan ini tentang Angular 2, tetapi saya berada di Angular 4 dan tidak ada jawaban yang membantu.
Dalam Angular 4 sintaksnya perlu
Semoga ini membantu.
sumber
jika Anda masih mendapatkan kesalahan setelah mengimpor FormsModule dengan benar maka periksa di terminal atau (konsol windows) karena proyek Anda tidak dikompilasi (karena kesalahan lain yang bisa berupa apa saja) dan solusi Anda belum tercermin di browser Anda!
Dalam kasus saya, konsol saya mengalami galat yang tidak terkait berikut ini: Properti 'takeveGithubUser' tidak ada pada tipe 'ApiService'.
sumber
Dalam modul Anda bersedia menggunakan ngModel Anda harus mengimpor FormsModule
sumber
ngModel berasal dari FormsModule.Ada beberapa kasus ketika Anda dapat menerima kesalahan semacam ini:
(Dalam beberapa versi saya menghadapi masalah ini) Anda telah mengimpor FormsModule dengan benar tetapi masalahnya ada pada tag HTML input. Anda harus menambahkan atribut tag nama untuk input dan nama objek terikat di [(ngModel)] harus sama dengan nama ke atribut nama
sumber
Di
ngModule
Anda perlu mengimporFormsModule
, karenangModel
berasal dariFormsModule
. Silakan modifikasi app.module.ts Anda seperti kode di bawah ini yang telah saya bagikansumber
mengimpor FormModule menjadi app.module
sumber
sumber
Kadang-kadang Anda mendapatkan kesalahan ini ketika Anda mencoba menggunakan komponen dari modul, yang tidak dibagi, dalam modul yang berbeda.
Misalnya, Anda memiliki 2 modul dengan module1.componentA.component.ts dan module2.componentC.component.ts dan Anda mencoba menggunakan pemilih dari module1.componentA.component.ts dalam templat di dalam module2 (misalnya
<module1-componentA [someInputVariableInModule1]="variableFromHTTPRequestInModule2">
), ia akan membuang kesalahan bahwa someInputVariableInModule1 tidak tersedia di dalam module1.componentA.component.ts - meskipun Anda memiliki@Input() someInputVariableInModule1
di module1.componentA.Jika ini terjadi, Anda ingin membagikan module1.componentA agar dapat diakses di modul lain. Jadi, jika Anda membagikan module1.componentA di dalam sharedModule, module1.componentA akan dapat digunakan di dalam module lain (di luar module1), dan setiap modul yang mengimpor sharedModule akan dapat mengakses pemilih dalam template mereka dengan menyuntikkan
@Input()
variabel yang dideklarasikan.sumber
Untuk skenario saya, saya harus mengimpor [CommonModule] dan [FormsModule] ke modul saya
sumber
Anda perlu mengimpor FormsModule
Buka app.module.ts
dan tambahkan baris
dan
sumber
Kadang-kadang jika kita sudah diimpor
BrowserModule
,FormsModule
dan Modul terkait lainnya meskipun saya mendapat Kesalahan yang sama maka saya menyadari bahwa kita perlu mengimpornya dalam Pesanan , dalam kasus saya saya melewatkannya. Jadi agar harus sepertiBrowserModule
,FormsModule
,ReactiveFormsModule
.Semoga ini bisa membantu seseorang .. :)
sumber
Ini untuk orang-orang yang menggunakan JavaScript biasa, bukan Ketik Script. Selain mereferensikan file skrip formulir di atas halaman seperti di bawah ini
Anda juga harus memberi tahu pemuat modul untuk memuat
ng.forms.FormsModule
. Setelah melakukan perubahanimports
propertiNgModule
metode saya tampak seperti di bawah iniimports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule],
Selamat coding!
sumber
Saya memutakhirkan dari RC1 ke RC5 dan menerima kesalahan ini.
Saya menyelesaikan migrasi saya (memperkenalkan
app.module.ts
file baru , mengubahpackage.json
untuk memasukkan versi baru dan modul yang hilang, dan akhirnya mengubah sayamain.ts
untuk boot sesuai, berdasarkan contoh mulai cepat Angular2 ).Saya melakukan
npm update
dan kemudiannpm outdated
untuk mengkonfirmasi versi yang diinstal sudah benar, masih belum berhasil.Saya akhirnya benar-benar menghapus
node_modules
folder dan menginstal ulang dengannpm install
- Voila! Masalah terpecahkan.sumber
Ketika saya pertama kali melakukan tutorial, main.ts tampak sedikit berbeda dari yang sekarang. Ini terlihat sangat mirip, tetapi perhatikan perbedaannya (yang paling atas benar).
Benar:
Kode tutorial lama:
sumber
tambahkan kode ke app.module.ts Itu bekerja untuk saya:
sumber