【发布时间】:2019-03-04 19:31:04
【问题描述】:
在组件 A 的构造函数内部我使用以下代码:
public visitors: any[] = [];
this.eventsService.view(this.activatedRoute.snapshot.params['id']).subscribe(response => {
this.event = response.data.event;
this.visitors = response.data.event.visitors;
});
组件A模板是:
<app-visitor-component [visitors]="visitors"></app-visitor-component>
为什么我在app-visitor-component 组件中的变量visitors 是空的,尽管存在数据:
@Input() visitors: IVisitor[];
constructor() {
console.log(this.visitors); // returns []
}
【问题讨论】:
-
如果您需要在
ngOnInit()时填充数据/长度,只需使用*ngIf仅在visitors具有数据/长度时渲染app-visitor-component。它总是出现在contructor/ngOnInit()中的[],因为填充visitors的异步调用仅在子组件的contructor/ngOnInit()执行之后完成。否则,还有其他生命周期方法,例如 OnChanges,您可以在其中捕获对该 @Input 的更新。至少尝试在订阅以及contructor/ngOnInit中放置一些console.log() 语句来可视化。
标签: angular