我是Angular 6的新手,正在研究ReactiveForms。收到此错误,无法编译。我已经看到了不同的解决方案,并按照解决方案中的建议在Imports中添加了ReactiveFormsModule指令,但它仍显示相同的错误。请帮忙。
为您共享所需的代码和错误的屏幕截图。 app.module.ts
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { SignupFormComponent } from './signup-form/signup-form.component';
import { AuthorsService } from './authors.service';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
@NgModule({
declarations: [
AppComponent,
SignupFormComponent,
CoursesComponent,
CourseComponent,
AuthorsComponent,
FavoriteComponent,
TitleCasePipe,
PanelComponent,
LikeComponent,
ZippyComponent,
ContactFormComponent,
NewCourseFormComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule
],
Signup-form.ts
import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
import { Component } from '@angular/core';
@Component({
selector: 'signup-form',
templateUrl: './signup-form.component.html',
styleUrls: ['./signup-form.component.css']
})
export class SignupFormComponent {
form = new FormGroup({
username: new FormControl(),
password: new FormControl()
});
}
signup-form.html
<form [FormGroup]="form">
<div class="form-group">
<label for="username">Username</label>
<input
formControlName="username"
id="username"
type="text"
class="form-control">
</div>
<div class="form-group">
<label for="password">Password</label>
<input
formControlName="password"
id="password"
type="text"
class="form-control">
</div>
<button class="btn btn-primary" type="submit">Sign Up</button>
</form>
答案 0 :(得分:1)
请在HTML下方使用
`<form [formGroup]="form">`
存在错误,因为您在[formGroup]中使用了大写字母F。
答案 1 :(得分:1)
如@srashtisj和@ suresh-kumar-ariya所述,您必须将HTML格式中的约定从FormGroup
更新为formGroup
,一切正常。
FormGroup跟踪一组表单控件的相同值和状态。
在Angular's official Form guide上了解有关创建表单实例的更多信息。
答案 2 :(得分:0)
问题与[FormGroup]有关,请使用[formGroup]。创建了一个https://stackblitz.com/edit/angular-xbp9fc
答案 3 :(得分:0)
您可以使用FormBuilder
import { Validators, FormBuilder, FormGroup, FormControl , ReactiveFormsModule } from '@angular/forms';
constructor(private builder: FormBuilder){}
public complexForm: FormGroup = this.builder.group({
'firstname' : '',
'lastname': '',
});
以HTML格式
<form [formGroup]="complexForm" (ngSubmit)="submitForm(complexForm.value)">
<div class="form-group" >
<label>First Name:</label>
<input class="form-control" type="text" placeholder="John" [formControl]="complexForm.controls['firstName']">
</div>
</form>
答案 4 :(得分:0)
在您的ReactiveFormsModule
中包括app.module.ts
的所有伪指令,例如formGroup
等。
它们在此模块中定义。