gpt4 book ai didi

angular - 具有父级和子级路由的响应式(Reactive)表单

转载 作者:行者123 更新时间:2023-12-02 16:37:37 25 4
gpt4 key购买 nike

我有一个数据输入表单,我正在使用父/子路由器来定义呈现一些选项卡的父组件,每个选项卡加载正在编辑的实体的一部分。

例如:我有一个渲染一些选项卡的组件,每个选项卡路由到一个子路由并渲染部分模型(请参阅下面的路由)

[
{
path: ':id',
component: ParentComponent,
resolve: {someModel: SomeModelResolver },
children: [
{ path: '', redirectTo: 'summary', pathMatch: 'full' },
{ path: 'summary', component: SummaryComponent },
{ path: 'other', component: OtherComponent },
...
]
}
]

我在所有子组件中使用响应式(Reactive)表单,但遇到了一些麻烦

a)跨所有子路由访问数据(我想我可以通过activatedRoute.parent.data来做到这一点),并且;

b) 验证所有子路由的数据,因为保存/取消按钮位于父路由组件中

有人对我如何实现这一目标有任何建议吗? (我更喜欢响应式(Reactive)表单解决方案而不是模板驱动的表单)

最佳答案

另一种方法非常有效,无需使用路由器,而是使用 DI,通过 @Input 装饰器将子 formGroup 传递给子组件。使用 @angular/material 的 mat-accordionmat-tab-group 测试了非常巨大的形式。性能非常好,并且表单可以像您希望的那样很好地分成更小的和平。

为这些子表单组创建 getter 函数

get childform1() {
return this.form.get(‘childForm1‘) as FormGroup;
}

然后使用

<app-childform [form]=“childform1“></app-childform>

在你的 child

 @Input() form: FormGroup;

然后,您可以轻松地将完整的表单保存在父组件上,并且所有值都会很好地传递到其中。

关于angular - 具有父级和子级路由的响应式(Reactive)表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51480751/

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