我有一个在ngOninit中构建的表单组,但是稍后当单击其中一个控件时,我想根据从ngOninit中的另一个API获取的值向现有表单组添加更多控件 . 下图显示了实际要求 . 当我点击其他角色时,我想展示我从API获得的其他角色控件 .
因为我是angular2的新手,有谁可以帮我摆脱这个问题?
您可以尝试以下方法 .
const arrayControl = <FormArray>this.myForm.controls['formArray']; let newGroup = this.fb.group({ /// new controls } arrayControl.push(newGroup);
您可以添加一个控制和验证表单的方法,如果这是您要求的 .
就像是:
<button type="submit" (click)="save(f.value, f.valid)">Submit</button>
在 save() 方法上,您可以验证表单等 .
save()
有关Angular 2中表单控件的更多信息:https://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2
Update:
由于你是Angular 2的新手,这对你来说必须是 must read :https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
了解动态表单在Angular2中的行为以及如何实现它们非常有用 .
Update 2:
我很清楚你的问题 . 如果你想要的是动态元素添加到表单,最简单的方法是使用 *ngIf 来动态显示/隐藏元素 .
*ngIf
例:
<input type="text" *ngIf="showInput"/>
文件:NgIf Directive
2 回答
您可以尝试以下方法 .
您可以添加一个控制和验证表单的方法,如果这是您要求的 .
就像是:
在
save()
方法上,您可以验证表单等 .有关Angular 2中表单控件的更多信息:https://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2
Update:
由于你是Angular 2的新手,这对你来说必须是 must read :https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
了解动态表单在Angular2中的行为以及如何实现它们非常有用 .
Update 2:
我很清楚你的问题 . 如果你想要的是动态元素添加到表单,最简单的方法是使用
*ngIf
来动态显示/隐藏元素 .例:
文件:NgIf Directive