【发布时间】:2020-04-30 15:34:09
【问题描述】:
我正在使用 Angular 路由器并有以下嵌套路由:
{
path: 'resource/:id',
component: ResourceComponent,
children: [
{
path: 'general',
component: ResourceGeneralComponent
},
{
path: 'background',
component: ResourceBackgroundComponent
}
]
}
ResourceComponent 从 REST-API 获取资源并包含一个 <router-outlet>,其中呈现了其他组件。子路由组件应显示提取数据的不同部分。当我点击相应的链接时,我可以使用history.state 将我的数据放入子组件中。但是,这在导航到 url/resource/1/general 时不起作用,因为 ResourceGeneralComponent 没有来自 ResourceComponent 的所需数据。
我通过这样的链接传递状态中的资源。就像我说的点击链接工作正常。
<a routerLink="general" [state]="{resource: resource}" routerLinkActive="active" class="nav-link">General</a>
如何在不使用history.state 的情况下将资源放入子组件中?我尝试订阅父组件和子组件共享的服务中的可观察对象,但传递给子组件订阅的函数没有被调用(可能是因为父组件在渲染子组件之前触发了可观察事件)。
如何正确地将数据传递给子组件?
【问题讨论】: