Javascript 如何以角度(反应形式)从父组件形式迭代数组
正如标题所说,我正在寻找一种方法,使用反应式表单在子组件上动态迭代来自父组件的数组(地址) 现在我没有收到任何错误,但它没有显示任何内容 我觉得我在黑暗中摸索,所以任何帮助都将不胜感激 父组件: company-profile.component.tsJavascript 如何以角度(反应形式)从父组件形式迭代数组,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
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);
})
}