SITUASI:
Tolong bantu! Saya mencoba membuat apa yang seharusnya menjadi bentuk yang sangat sederhana di aplikasi Angular2 saya, tetapi apa pun itu tidak pernah berhasil.
VERSI ANGULAR:
2.0.0 Rc5 sudut
KESALAHAN:
Can't bind to 'formGroup' since it isn't a known property of 'form'
KODE:
Pandangan:
<form [formGroup]="newTaskForm" (submit)="createNewTask()">
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" required>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Pengontrol:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
import {FormsModule,ReactiveFormsModule} from '@angular/forms';
import { Task } from './task';
@Component({
selector: 'task-add',
templateUrl: 'app/task-add.component.html'
})
export class TaskAddComponent {
newTaskForm: FormGroup;
constructor(fb: FormBuilder)
{
this.newTaskForm = fb.group({
name: ["", Validators.required]
});
}
createNewTask()
{
console.log(this.newTaskForm.value)
}
}
Modul:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { routing } from './app.routing';
import { AppComponent } from './app.component';
import { TaskService } from './task.service'
@NgModule({
imports: [
BrowserModule,
routing,
FormsModule
],
declarations: [ AppComponent ],
providers: [
TaskService
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
PERTANYAAN:
Mengapa saya mendapatkan kesalahan itu?
Apakah saya melewatkan sesuatu?
sumber
FormsModule
danReactiveFormsModule
. Saya akan mengedit jawaban saya.ReactiveFormsModule
dalam daftar penyedia dan berfungsi. Tidak yakin apakah ini yang seharusnya Anda lakukan.Sudut 4 dalam kombinasi dengan modul fitur (jika Anda misalnya menggunakan modul bersama) mengharuskan Anda juga mengekspornya
ReactiveFormsModule
agar berfungsi.sumber
Oke setelah beberapa penggalian, saya menemukan solusi untuk "Tidak dapat mengikat ke 'formGroup' karena itu bukan properti yang dikenal dari 'form'."
Untuk kasus saya, saya telah menggunakan beberapa file modul, saya menambahkan ReactiveFormsModule di app.module.ts
Tapi ini tidak berfungsi ketika saya menggunakan arahan [formGroup] dari komponen yang ditambahkan dalam modul lain, misalnya menggunakan [formGroup] di author.component.ts yang berlangganan file author.module.ts:
Saya pikir jika saya menambahkan ReactiveFormsModule di app.module.ts, secara default ReactiveFormsModule akan diwarisi oleh semua modul anak-anaknya seperti author.module dalam hal ini ... (salah!). Saya perlu mengimpor ReactiveFormsModule di author.module.ts untuk membuat semua arahan bekerja:
Jadi, jika Anda menggunakan submodule, pastikan untuk mengimpor ReactiveFormsModule di setiap file submodule. Semoga ini bisa membantu siapa saja.
sumber
Saya mengalami kesalahan ini selama pengujian unit komponen (hanya selama pengujian, dalam aplikasi itu berfungsi normal). Solusinya adalah mengimpor
ReactiveFormsModule
dalam.spec.ts
file:sumber
Jawaban yang disarankan tidak bekerja untuk saya dengan Angular 4. Sebaliknya saya harus menggunakan cara lain atribut mengikat dengan
attr
awalan:sumber
attr.
?ReactiveFormsModule
langsung ke halaman saya.module.ts
. Bukan.page.ts
... setelah saya melakukan itu, templat saya dapat mengidentifikasiformGroup
atribut dengan benar , tanpaattr.
awalan.Jika Anda harus mengimpor dua modul kemudian tambahkan seperti ini di bawah ini
sumber
Ingatlah bahwa jika Anda telah mendefinisikan "Modul Fitur", Anda harus mengimpor dalam Modul Fitur, bahkan jika Anda sudah diimpor ke
AppModule
. Dari dokumentasi Angular:https://angular.io/docs/ts/latest/guide/ngmodule.html
sumber
Kesalahan mengatakan bahwa FormGroup tidak dikenali dalam modul ini. Jadi, Anda harus mengimpor (bawah) modul ini di setiap modul yang menggunakan FormGroup
Kemudian tambahkan FormsModule dan ReactiveFormsModule ke array impor Modul Anda .
Anda mungkin berpikir bahwa saya sudah menambahkannya di AppModule dan harusnya mewarisinya? Tapi ternyata tidak. karena modul ini mengekspor arahan yang diperlukan yang hanya tersedia dalam modul impor. Baca lebih lanjut di sini ... https://angular.io/guide/sharing-ngmodules .
Faktor lain untuk kesalahan ini mungkin kesalahan ejaan seperti di bawah ini ...
[FormGroup] = "form" Modal F, bukan kecil f
[formGroup] = "form" Extra s after form
sumber
Saya memiliki masalah yang sama dengan Angular 7. Cukup impor mengikuti di file app.module.ts Anda.
Kemudian tambahkan FormsModule dan ReactiveFormsModule ke array impor Anda.
sumber
Masalah ini terjadi karena impor yang hilang dari FormsModule, ReactiveFormsModule. Saya juga datang dengan masalah yang sama. Kasus saya berbeda. karena saya bekerja dengan modules. Jadi saya ketinggalan impor di modul orang tua saya meskipun saya telah mengimpornya ke modul anak, itu tidak berfungsi.
Kemudian saya mengimpornya ke modul induk saya seperti di bawah ini, dan itu berhasil!
sumber
Untuk orang yang menelusuri utas ini tentang kesalahan ini. Dalam kasus saya, saya memiliki modul bersama di mana saya hanya mengekspor FormsModule dan ReactiveFormsModule dan lupa untuk mengimpornya. Ini menyebabkan kesalahan aneh bahwa formgroup tidak berfungsi di sub komponen. Semoga ini bisa membantu orang menggaruk-garuk kepala.
sumber
Saya menemukan kesalahan ini ketika mencoba melakukan pengujian e2e dan itu membuat saya gila bahwa tidak ada jawaban untuk ini.
JIKA ANDA MELAKUKAN PENGUJIAN, cari file * .specs.ts Anda dan tambahkan:
sumber
A LITTLE NOTE: Hati-hati dengan loader dan perkecil (Rails env.):
Setelah melihat kesalahan ini dan mencoba setiap solusi di luar sana, saya menyadari ada sesuatu yang salah dengan pemuat html saya.
Saya telah menetapkan lingkungan Rails saya untuk mengimpor jalur HTML agar komponen saya berhasil dengan pemuat ini (
config/loaders/html.js.
):Setelah beberapa jam upaya dan tak terhitung impor ReactiveFormsModule saya melihat bahwa saya
formGroup
adalah surat kecil:formgroup
.Ini membawa saya ke loader dan fakta bahwa HTML saya diperkecil.
Setelah mengubah opsi, semuanya berjalan sebagaimana mestinya, dan saya bisa kembali menangis lagi.
sumber
menggunakan dan mengimpor REACTIVE_FORM_DIRECTIVES :
sumber
Jika Anda memiliki masalah ini ketika mengembangkan komponen, maka Anda harus menambahkan dua modul ini ke modul terdekat Anda:
Dan jika Anda mengembangkan tes untuk komponen Anda maka Anda harus menambahkan modul ini ke file tes Anda seperti ini:
sumber
Impor ReactiveFormsModule dalam modul yang sesuai
sumber
Solusi sederhana:
langkah 1: impor ReactiveFormModule
langkah 2: tambahkan "ReactiveFormsModule" ke bagian impor
Langkah 3: restart Aplikasi dan Selesai
Contoh:
sumber
Impor dan daftarkan ReactiveFormsModule di app.module.ts Anda.
Pastikan ejaan Anda benar dalam file .ts dan .html. xxx.ts
file xxx.html-
Saya tidak sengaja menulis [FormGroup] insted dari [formGroup]. Periksa ejaan Anda dengan benar di .html. Itu tidak membuang kesalahan waktu kompilasi Jika ada yang salah dalam file .html.
sumber
Catatan : jika Anda bekerja di dalam komponen modul anak, maka Anda hanya perlu mengimpor ReactiveFormsModule dalam modul anak daripada modul induk aplikasi root
sumber
Jangan bodoh seperti aku. Sedang mendapatkan kesalahan yang sama seperti di atas, NONE dari opsi di utas ini bekerja. Kemudian saya menyadari saya menggunakan huruf 'F' di FormGroup. Doh!
Dari pada:
[FormGroup]="form"
Melakukan:
[formGroup]="form"
sumber
jika ini hanya kesalahan naskah tetapi semua yang ada di formulir Anda berfungsi, Anda mungkin harus memulai ulang IDE Anda
sumber
Saya mempunyai masalah yang sama, pastikan bahwa jika menggunakan submodules (misalnya, Anda tidak hanya memiliki app.component.module.ts, tetapi Anda memiliki komponen terpisah seperti login.module.ts, yang Anda masukkan impor ReactiveFormsModule dalam login ini .module.ts impor, agar bisa berfungsi. Saya bahkan tidak perlu mengimpor ReactiveFormsModule di app.component.module saya karena saya menggunakan submodul untuk semuanya.
login.module.ts:
sumber
Mungkin bisa membantu seseorang:
ketika Anda memiliki formGroup di modal (entrycomponent), maka Anda harus mengimpor ReactiveFormsModule juga di modul tempat modal tersebut dipakai.
sumber
Can't bind to 'formGroup' since it isn't a known property of 'form'
berarti Anda mencoba mengikat properti menggunakan angular (
[prop]
) tetapi angular tidak dapat menemukan apa pun yang ia ketahui untuk elemen tersebut (dalam hal iniform
).ini bisa terjadi dengan tidak menggunakan modul yang tepat (melewatkan impor di suatu tempat di jalan) dan kadang-kadang hanya menyebabkan kesalahan ketik seperti:
[formsGroup]
, dengans
setelahform
sumber
Solusi saya halus dan saya belum melihatnya terdaftar.
Saya menggunakan formulir reaktif dalam komponen Dialog Bahan Angular yang tidak dideklarasikan di
app.module.ts
. Komponen utama dideklarasikanapp.module.ts
dan akan membuka komponen dialog tetapi komponen dialog tidak secara eksplisit dinyatakan dalamapp.module.ts
.Saya tidak memiliki masalah dalam menggunakan komponen dialog secara normal kecuali bahwa bentuknya melemparkan kesalahan ini setiap kali saya membuka dialog.
Can't bind to 'formGroup' since it isn't a known property of 'form'.
sumber
Pertama, ini tidak terkait dengan versi Angular> 2 . Cukup impor berikut dalam file app.module.ts Anda akan memperbaiki masalah.
Kemudian tambahkan FormsModule dan ReactiveFormsModule ke array impor Anda.
Catatan : Anda juga dapat mengimpor
ReactiveFormsModule
ke modul tertentuapp.module.ts
sumber
Setelah saya menambahkan modul saya ke
AppModule
semuanya mulai berfungsi dengan baik.sumber