开始使用FormBuilder
,我们必须首先确保我们正在使用正确的指令和正确的类,以利用程序式的表单。 为此,我们需要确保在应用程序模块的引导阶段中导入FormsModule
和ReactiveFormsModule
。
这将让我们访问组件,指令和providers,如FormBuilder
,FormGroup
和FormControl
在我们的例子中,将构建一个登录表单,我们看下面的内容:
app/login-form.component.ts
1 | import { Component } from '@angular/core'; |
app/login-form.component.html
1 | <form [formGroup]="loginForm" (ngSubmit)="login()"> |
FormControl
请注意,FormControl
类被分配到类似命名的字段,无论是在此还是在FormBuilder#group({ })
方法中。 这主要是为了方便访问。 通过保存this
对FormControl
实例的引用,您可以访问模板中的输入,而无需引用表单本身。 否则,可以通过使用loginForm.controls.username
和loginForm.controls.password
在模板中访问表单字段。 同样,此情况下的任何FormControl
实例都可以通过使用其.root
属性(例如username.root.controls.password
)访问其父组。
确保root和控件在使用之前存在。
FormControl
需要两个属性:初始值和验证器列表。 现在,我们没有验证。 这将在后续步骤中添加。