我有一个组件,它是在使用路由器级别的解析器成功解析数据时加载(路由)的。从服务器检索到的数据将传递给子组件。数据被解析并相应地传递,但子组件抛出
错误。试图访问未定义的
.
场景:
父组件HTML:
<parent>
<child [_data]="dataFromResolver"></child>
</parent>
父Component.ts export class Parent implements OnInit {
dataFromResolver: any;
constructor(private route: ActivatedRoute) {
}
ngOnInit() {
this.route.data.forEach((data: any) => {
this.dataFromResolver = data;
});
}
}
解析器服务:
resolve(route: ActivatedRouteSnapshot): Observable<boolean | any> {
return this.parentService.getData().map(output => {
if (output) {
return output;
} else {
this.router.navigate(['/login']);
return false;
}
});
}
儿童Compnent.ts @Input() _data(value: any) {
this.data = value;
}
data: any;
子组件HTML
<p>{{data.name}}</p>
路由也已相应配置,我可以在浏览器工具的网络选项卡中看到数据。
如果我错过了什么,请告诉我。
发现我在@Input()
之后漏掉了set
的错误。一个大错误。