Javascript 如何以角度(反应形式)从父组件形式迭代数组

Javascript 如何以角度(反应形式)从父组件形式迭代数组,javascript,angular,typescript,angular-reactive-forms,Javascript,Angular,Typescript,Angular Reactive Forms,正如标题所说,我正在寻找一种方法,使用反应式表单在子组件上动态迭代来自父组件的数组(地址) 现在我没有收到任何错误,但它没有显示任何内容 我觉得我在黑暗中摸索,所以任何帮助都将不胜感激 父组件: company-profile.component.ts CreateForm(): void { console.log('createFrom:'); this.companyProfileForm = this.fb.group({ title: ['', Valida

正如标题所说,我正在寻找一种方法,使用反应式表单在子组件上动态迭代来自父组件的数组(地址)

现在我没有收到任何错误,但它没有显示任何内容

我觉得我在黑暗中摸索,所以任何帮助都将不胜感激

父组件:

company-profile.component.ts

CreateForm(): void {
    console.log('createFrom:');
    this.companyProfileForm = this.fb.group({
      title: ['', Validators.required],
      registrationNumber: null,
      webAddress: '',
      description: '',
      addresses: this.fb.array([this.createAddress()])
    });
  }

  createAddress(): FormGroup {
    return this.fb.group({
      address: '',
      postCode: '',
      city: '',
      countryId: null,
    });
  }

 populateForm(): void {
  console.log('populateForm: Populating form from companyId: ' + this.company.id);
   this.companyProfileForm.reset({
    title: this.company.title,
    registrationNumber: this.company.registrationNumber,
    webAddress: this.company.webAddress,
    description: this.company.description,
    addresses: this.company.addresses
  });
}
constructor(
@Inject(forwardRef(() => CompanyProfileComponent))
public companyProfileComponent: CompanyProfileComponent,
private companyService: CompanyService,
) {}
company.profile.component.html

<div *ngIf="company" class="row">
        <app-company-profile-address [addresses]="companyProfileForm.controls['addresses']"></app-company-profile-address>
 </div>
company-profile.address.componenet.html

<div [formGroup]="addresses">


地址
邮政地址
邮政编码
城市

尝试改变填充表格的方式

populateAddress() {
  const control = <FormArray>this.companyProfileForm.controls['addresses'];

  this.company.addresses.forEach(element => {
    control.push(element);
  })
}
populateAddress(){
const control=this.companyProfileForm.controls['addresses'];
this.company.addresses.forEach(元素=>{
控制。推动(元件);
})
}
您需要创建一个FormArray,但您正在将一个对象数组传递到formGroup中

*此外,组件名称中还有一个输入错误:company profile.address.componenet.html


希望这对我下面的回答有所帮助,这可能是理解嵌套表单的一个良好开端,它并不完全是这个问题所需要的,但它会让您了解如何填充FormArray:
populateAddress() {
  const control = <FormArray>this.companyProfileForm.controls['addresses'];

  this.company.addresses.forEach(element => {
    control.push(element);
  })
}