gpt4 book ai didi

angular - 表单内的多个子组件 - Angular 2

转载 作者:行者123 更新时间:2023-12-01 07:24:28 27 4
gpt4 key购买 nike

我正在处理大表单,所以我计划将表单截断为多个子组件,这有助于轻松集成和维护。使用表单生成器,我正在尝试实现这一点。

mainform.html

    <form novalidate (ngSubmit)="onSubmit(formDetail);" [formGroup]="formDetail">
<label>
<span>Name</span>
<input
type="text"
placeholder="Enter emp name"
formControlName="name">
</label>
<app-userinfo></app-userinfo> <!-- Child component 1 -->
<app-useracc></app-useracc> <!-- Child component 2 -->
</form>

mainform.ts
export class MainformComponent implements OnInit {
formDetail: FormGroup;
constructor(private formBuilder: FormBuilder) { }

ngOnInit() {
this.formDetail= this.formBuilder.group({
name:'',
userinfo: this.formBuilder.group({
userid: '',
userph: ''
}),
useracc: this.formBuilder.group({
useracc: '',
usertransfer: ''
})
});
}
onSubmit(value:User){
debugger;
}
}

Console.log
formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup

是否可以将嵌套表单组件作为单独的子组件?

最佳答案

您需要使用 Input()并通过该子 FormGroup给 child 。我在这里稍微更改了一下,并将组命名为 useraccount而不是 useracc将控件与组分开:

您父级中 useraccount 的子组:

  ...
useraccount: this.formBuilder.group({
useracc: '',
})
...

因此,父组件中相关的子组件标签应该如下所示:
<app-useracc [useraccount]="formDetail.controls.useraccount"></app-useracc>

然后在您的子组件中添加输入:
@Input() useraccount: FormGroup;

和模板可能如下所示:
<div [formGroup]="useraccount">
<input formControlName="useracc">
</div>

工作 sample

关于angular - 表单内的多个子组件 - Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42203135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com