将反应式 Angular 形式嵌套到另一种反应式形式中

Nesting reactive Angular form into another reactive form

提问人:L. Kvri 提问时间:11/17/2023 更新时间:11/17/2023 访问量:16

问:

将一个角度组件嵌套到另一个角度组件中的最佳方式是什么? 两者都采用反应式方法构建。我使用 Angular v16

父组件:

@Component({
  selector: 'app-parent',
  templateUrl: './parent.component.html',
  styleUrls: ['./parent.component.scss']
})
export class ParentComponent implements OnInit {
 form: FormGroup;

 constructor (private formBuilder: FormBuilder) {}

 ngOnInit(): void {
  this.form = this.formBuilder.group({
   fieldA: [null, []]
   fieldB: [null, []]
   nested: this.formBuilder.group({}),
  }
 }

父窗体的模板:

<form [formGroup]="form">
  ...
</form>

嵌套形式:

@Component({
  selector: 'app-nested',
  templateUrl: './nested.component.html',
  styleUrls: ['./nested.component.scss']
})
export class NestedXomponent implements OnInit {
 @Input parentForm: FormGroup;

 nestedForm: FormGroup;


 constructor (private formBuilder: FormBuilder) {}


 ngOnInit(): void {
  this.nestedForm = this.formBuilder.group({
   fieldC: [null, []]
   fieldD: [null, []]
  }
  this.parentForm.setControl('nested', this.nestedForm);
 }

父窗体的模板:

<form [formGroup]="nestedForm">
  ...
</form>

我总是得到

错误 错误:NG0201:在 NodeInjector 中找不到 NgControl 的提供程序。parent.component.ts(父组件.ts)

我错过了什么,将一个反应式组件嵌入到另一个反应式组件的最佳方法是什么?

Angular 嵌套 组件 反应式 提供程序

评论


答: 暂无答案