Yul*_*ale 6 angular angular-formbuilder
与表单生成器相比,使用表单控件和表单组有什么优势吗?
我在这里看到的是:
FormBuilder提供了语法糖,可以缩短FormControl,FormGroup或FormArray的创建实例。它减少了构建复杂表格所需的样板数量。
我想知道不使用表单生成器是否有任何优势。我之所以这样问是因为我正在经历一些角度代码,并且看到正在使用表单控件和表单组,并且我想知道如果有更短的方法可以做到这一点,为什么会这样做呢?
那么,相对于其他方式,它有什么优势吗?还是仅仅是偏爱?
小智 25
这个例子在这里
使用 FormGroup:
export class ProfileEditorComponent {
profileForm = new FormGroup({
firstName: new FormControl(''),
lastName: new FormControl(''),
address: new FormGroup({
street: new FormControl(''),
city: new FormControl(''),
state: new FormControl(''),
zip: new FormControl('')
})
});
}
Run Code Online (Sandbox Code Playgroud)
使用 FormBuilder:
export class ProfileEditorComponent {
constructor(private fb: FormBuilder) { }
profileForm = this.fb.group({
firstName: [''],
lastName: [''],
address: this.fb.group({
street: [''],
city: [''],
state: [''],
zip: ['']
}),
});
}
Run Code Online (Sandbox Code Playgroud)
我查看了Angular官方文档,并在“ 反应式表单”部分中看到:
FormBuilder服务是随反应式表单模块一起提供的可注入提供程序。
如果您了解更多,您会发现表单构建器是一项与表单组,表单控件和表单数组功能相同的服务。官方文档将其描述为:
手动创建表单控件实例在处理多个表单时可能会重复。FormBuilder服务提供了用于生成控件的便捷方法。
因此基本上可以说FormBuilder是一项旨在帮助我们减少样板代码的服务。此处提供了有关如何使用FormBuilder减少样板代码的示例。要回答这个问题:
那么,相对于其他方式,它有什么优势吗?还是仅仅是偏爱?
嗯,这没有技术优势,无论您使用哪种代码,都取决于您的偏好。
它几乎相同。我总是尝试使用表单构建器,因为它更灵活,特别是当我们谈论动态表单创建时。如果您有动态表单创建,您只需将其路径为一个对象,它就会返回您 FormGroup。
| 归档时间: |
|
| 查看次数: |
4046 次 |
| 最近记录: |