Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角反应形式-良好实践_Angular_Typescript_Coding Style_Angular Reactive Forms_Reactive Forms - Fatal编程技术网

Angular 角反应形式-良好实践

Angular 角反应形式-良好实践,angular,typescript,coding-style,angular-reactive-forms,reactive-forms,Angular,Typescript,Coding Style,Angular Reactive Forms,Reactive Forms,我想知道最好的做法是什么 所以情况是这样的: 我有一个表单,根据用户选择,我需要不同的表单字段(其中一些可能相同) 这里有一个问题,我应该在一个基本组件(表单第一次创建的地方)的开始添加所有可能的字段,并在需要时使用它们,还是应该根据用户选择的选项添加字段?(顺便说一句,添加的字段将添加到ngOnInit()中的新组件中)简单方法的副作用较小。这里最简单的方法是使用or将包含所有可能属性的整个表单声明为属性。当您在提交时发回服务器时,您可以发布整个表单,因为您的用户从未看到的属性将只是null或

我想知道最好的做法是什么

所以情况是这样的: 我有一个表单,根据用户选择,我需要不同的表单字段(其中一些可能相同)


这里有一个问题,我应该在一个基本组件(表单第一次创建的地方)的开始添加所有可能的字段,并在需要时使用它们,还是应该根据用户选择的选项添加字段?(顺便说一句,添加的字段将添加到ngOnInit()中的新组件中)

简单方法的副作用较小。这里最简单的方法是使用or将包含所有可能属性的整个表单声明为属性。当您在提交时发回服务器时,您可以发布整个表单,因为您的用户从未看到的属性将只是null或未定义


您仍然需要在模板中动态显示/隐藏输入,但是组件代码会更简单。

但是有什么区别吗,比如说稍微有点不同?如果只是关于干净的代码,那么如果有未使用的属性,它是否真的更干净呢?动态添加和删除表单字段需要一个带有一些逻辑的事件处理程序方法。。。没什么大不了的,但是有额外的代码。此外,现在有人试图找出您的代码,必须查看多个地方,以了解所有可能的表单字段是什么,因为您没有预先声明它们。这些都是相对次要的风格,所以有点小气,接近观点。但这正是你想要的。