引入 ReactiveFormsModule

  1. import { ReactiveFormsModule } from "@angular/forms"
  2. @NgModule({
  3. imports: [ReactiveFormsModule]
  4. })
  5. export class AppModule {}

在组件类中创建 FormGroup 表单控制对象

  1. import { FormControl, FormGroup } from "@angular/forms"
  2. export class AppComponent {
  3. contactForm: FormGroup = new FormGroup({
  4. name: new FormControl(),
  5. phone: new FormControl()
  6. })
  7. }

关联组件模板中的表单

  1. <form [formGroup]="contactForm" (submit)="onSubmit()">
  2. <input type="text" formControlName="name" />
  3. <input type="text" formControlName="phone" />
  4. <button>提交</button>
  5. </form>

获取表单值

  1. export class AppComponent {
  2. onSubmit() {
  3. console.log(this.contactForm.value)
  4. }
  5. }

设置表单默认值

  1. contactForm: FormGroup = new FormGroup({
  2. name: new FormControl("默认值"),
  3. phone: new FormControl(15888888888)
  4. })

表单分组

  1. contactForm: FormGroup = new FormGroup({
  2. fullName: new FormGroup({
  3. firstName: new FormControl(),
  4. lastName: new FormControl()
  5. }),
  6. phone: new FormControl()
  7. })
  1. <form [formGroup]="contactForm" (submit)="onSubmit()">
  2. <div formGroupName="fullName">
  3. <input type="text" formControlName="firstName" />
  4. <input type="text" formControlName="lastName" />
  5. </div>
  6. <input type="text" formControlName="phone" />
  7. <button>提交</button>
  8. </form>
  1. onSubmit() {
  2. console.log(this.contactForm.value.name.username)
  3. console.log(this.contactForm.get(["name", "username"])?.value)
  4. }