我有一个名为dashboardComponent的parentComponent。这包含一个表格。
在该表中选择一行时,我会显示它的子组件,即companyAdmin,然后将rowID传递给它。
其上的CompanyAdmin包含4个子组件。 companyAdminComponent的任务是使用从其parentComponent(dashboardComponent)收到的rowId执行GET请求。然后发送将该数据分发给它的4个子组件。
我遇到的问题是,这一切都在1页上,所以不能使用解析器。因此,当我渲染companyAdminComponent的subComponent时,它崩溃了,因为它还没有收到GET请求中的数据。并得到错误
无法读取未定义的属性“名称”
所以基本上如何在加载数据后才显示companyAdmin的subComponent。
代码
dashboard.html(父组件)
仅显示相关代码以简洁
// ap-company-admin only is being shown when a row is selected in the table
<div class="row extraRowSpace" *ngIf="companySelected">
<div class="col-xl-12">
<ap-company-admin [companyId]="company.id"></ap-company-admin>
</div>
</div>
CompanyAdmin HTML(dashboardComponent的子组件)
<ap-company-details [companyDetails]="companyDetails"></ap-company-details>
CompanyAdminComponent TS(dashboardComponent的子组件)
ngOnInit() {
this.companyService.getAllCompanyDetails(this.companyId).subscribe(
response => {
this.allCompanyDetails = response;
this.companyDetails = {
cardsName: this.allCompanyDetails.cardsName,
name: this.allCompanyDetails.name
};
}
);
}
CompanyDetailsComponent(companyAdminComponent的子组件)
@Input() companyDetails;
companyName: FormControl;
cardsName: FormControl;
ngOnInit() {
this.companyName = new FormControl(this.companyDetails.name);
this.cardsName = new FormControl(this.companyDetails.cardsName);
// Basically it is crashing here because on init of this component the data of companyDetails hasn't come back yet from the GET call
}
我找到的所有东西都与解析器有关,但由于我没有导航但只是在选择行时显示并隐藏了companyAdminComponent,我认为我不能用解析器执行此操作。有什么建议吗?