Angular2: не может связываться с 'formGroup', поскольку это не известное свойство 'form'
Я новичок в angular 2, и я пытаюсь создать реактивную форму, но у меня есть некоторые проблемы. После многих поисков в стеке я не нашел решений.
Здесь вы можете увидеть мою ошибку
![введите описание изображения здесь]()
Код:
Вид:
<main>
<div class="container">
<h2>User data</h2>
<form [formGroup]="userForm">
<div class="form-group">
<label>name</label>
<input type="text" class="form-control" formControlName="name">
</div>
<div class="form-group">
<label>email</label>
<input type="text" class="form-control" formControlName="email">
</div>
<div class="" formGroupName="adresse">
<div class="form-group">
<label>Rue</label>
<input type="text" class="form-control" formControlName="rue">
</div>
<div class="form-group">
<label>Ville</label>
<input type="text" class="form-control" formControlName="ville">
</div>
<div class="form-group">
<label>Cp</label>
<input type="text" class="form-control" formControlName="cp">
</div>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</main>
Мой module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { ContactComponent } from './contact.component';
import { FormGroup , FormControl , ReactiveFormsModule , FormsModule } from '@angular/forms';
@NgModule({
imports: [
NgModule,
BrowserModule,
FormsModule,
ReactiveFormsModule,
FormGroup,
FormControl
],
declarations: [
ContactComponent
]
})
export class ContactModule {}
И мой компонент .ts
import {Component} from '@angular/core';
import { FormGroup , FormControl } from '@angular/forms';
@Component({
selector: 'contact',
templateUrl: './contact.component.html'
// styleUrls: ['../../app.component.css']
})
export class ContactComponent {
userForm = new FormGroup({
name: new FormControl(),
email: new FormControl(),
adresse: new FormGroup({
rue: new FormControl(),
ville: new FormControl(),
cp: new FormControl(),
})
});
}
Я не понимаю свою ошибку, потому что импорт ReactiveForm здесь. Итак... мне нужна ваша помощь:) Спасибо
После того, как я прочитал ваш ответ и рефакторинг моего кода, все в порядке, это работает! Проблема заключалась в том, что я импортировал реактивный модуль в модуле моего контакта с страницей, и мне нужно импортировать это в модуль моего приложения. Так что спасибо за ваш интерес:)
Надеюсь, что этот ответ поможет другим людям.
Ответы
Ответ 1
Я думаю, что это старая ошибка, которую вы пытались исправить, импортируя случайные вещи в свой модуль, и теперь код больше не компилируется. в то время как вы не обращаете внимание на вывод оболочки, перезагрузка браузера, и вы по-прежнему получаете ту же ошибку.
Ваш модуль должен быть:
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
],
declarations: [
ContactComponent
]
})
export class ContactModule {}
Ответ 2
попробуй с
<form formGroup="userForm">
вместо
<form [formGroup]="userForm">
Ответ 3
Попробуйте добавить ReactiveFormsModule в ваш компонент.
import { FormGroup, FormArray, FormBuilder,
Validators,ReactiveFormsModule } from '@angular/forms';
Ответ 4
Не используйте userForm = new FormGroup()
form = new FormGroup()
этого используйте form = new FormGroup()
.
А в форме используйте <form [formGroup]="form">...</form>
. У меня работает с угловой 6
Ответ 5
Я решил это, импортировав FormModule в shared.module и импортировав shared.module во все остальные модули. В моем случае FormModule используется в нескольких модулях.
Ответ 6
У меня была такая же проблема, и я решил проблему по-другому, без импорта ReactiveFormsModule.
Вы можете быть, но этот блок в
ngOnInt(){
userForm = new FormGroup({
name: new FormControl(),
email: new FormControl(),
adresse: new FormGroup({
rue: new FormControl(),
ville: new FormControl(),
cp: new FormControl(),
})
});
)
Ответ 7
Для тех, кто все еще борется с ошибкой, убедитесь, что вы также импортировали ReactiveFormsModule в свой файл module.ts компонента
Это означает, что вы будете импортировать свой ReactiveFormsModule в ваш app.module.ts, а также в ваш файл mycomponent.module.ts