【发布时间】:2020-06-07 21:58:00
【问题描述】:
具有子 AddHospitalComponent 的父组件。 AddHospitalComponent 再次有一个子 AddDepartmentComponent。
AddDepartmentComponent 有一个列表departmentList;
想要从 HospitalsComponent 设置这个 departmentList 值,但它返回错误。 “无法设置未定义的属性 'departmentList'”。
如何在设置部门列表之前设置 AddHospitalComponent 组件,我没有为 AddHospitalComponent 设置任何内容。
这是祖父类。
@Component({
selector: 'app-hospitals',
templateUrl: './add-hospitals.component.html',
styleUrls: ['./add-hospitals.component.scss']
})
export class HospitalsComponent implements OnInit {
@ViewChild(AddHospitalComponent, { static: true }) newHospital: AddHospitalComponent;
constructor(public router: Router) {
}
loadById(event: any) {
this.hospitalService.getHospitalsById(event).subscribe(response => { //server call
this.newHospital.hospDepartment.departmentList = []; // line 6
if (response) {
this.newHospital.hosp = new HospitalModel();
this.newHospital.hosp = response['result'];
this.newHospital.hospDepartment.departmentList = this.newHospital.hospital.hospDepartmentList;
}
})
}
在第 6 行我收到错误“无法设置未定义的属性 'departmentList'”。
祖父母对应的html
add-hospitals.component.html
<div class="pl-2">
<button class="btn btn-sm btn-primary" (click)="loadById(val)">Save</button>
<app-add-hospital #newHospital></app-add-hospital>
</div>
这是父类。
export class AddHospitalComponent implements OnInit {
constructor(private masterService:MasterService) { }
@ViewChild(AddDepartmentComponent, { static: true }) hospDepartment: AddDepartmentComponent;
}
这是子类,需要从祖父的子类中设置这个部门列表。
export class AddDepartmentComponent implements OnInit {
departmentList: DepartmentModel[] = [];
}
【问题讨论】:
-
您的
newHospital父组件是否在其标签或其父标签之一上有*ngIf?换句话说,你能上传你的祖父母 html 吗? -
@benshabatnoam 问题已更新。
-
是的,我确实有一个 *ngIf,这就是这个问题的原因。
标签: angular typescript angular6