【发布时间】:2017-03-06 07:35:09
【问题描述】:
我有一个组件,它在路由器级别使用解析器成功解析数据时加载(路由)。从服务器检索的数据将被传递给子组件。数据已解析并相应传递,但子组件抛出
错误试图从未定义访问
.
场景:
父组件 HTML:
<parent>
<child [_data]="dataFromResolver"></child>
</parent>
父组件.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;
}
});
}
子组件.ts
@Input() _data(value: any) {
this.data = value;
}
data: any;
子组件 HTML
<p>{{data.name}}</p>
路由也已相应配置,我可以在浏览器工具的网络选项卡中看到数据。
如果我遗漏了什么,请告诉我。
【问题讨论】:
标签: angular angular2-routing angular2-components