【发布时间】:2020-04-14 02:17:24
【问题描述】:
我在子组件中有一个列表。我想从父组件(AppComponent)访问这个列表并使用@ViewChild装饰器显示它,但是该列表在父组件中始终未定义
export class CategorieComponent implements OnInit {
@Output() listCategories: Categorie[];
constructor(private http: HttpClient) {
this.http.get<Categorie[]>('api/Categorie').subscribe(value => {
this.listCategories = value;
});
}
ngOnInit() {
}
}
应用组件.ts
@ViewChild(CategorieComponent, { static: false })
private categoryComponent: CategorieComponent;
.
.
.
ngAfterViewInit() {
this.listCategories = this.categoryComponent.listCategories;
}
app.component.html
<option *ngFor="let cat of listCategories" [value]="cat.idCat" [selected]="cat.idCat == projet.idCat">
{{cat.nomCat}}
</option>
【问题讨论】:
-
你在父组件中使用
CategorieComponent吗? -
还有为什么您不为此目的使用服务?
-
是的,我是。父组件实际上是
AppComponent。而且我确信 get 调用会返回我需要的列表 -
我认为要获取数据,您应该使用服务,而不是组件。
-
一定要使用组件吗?