如何将数据传递到嵌套路由组件的角度

问题描述 投票:0回答:1

我正在使用Angular Router,并且具有以下嵌套路由:

{
    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就能正常工作?我尝试订阅父子组件都共享的服务中的可观察对象,但是传递给订阅子对象的函数未调用(可能是因为父对象在呈现子对象之前触发了可观察事件)。

如何正确将数据传递给子组件?

angular angular-ui-router
1个回答
0
投票

我会考虑使用其中带有Subject或BehaviourSubject作为属性的属性包服务。我已经走过类似的道路,我所做的就是创建了一个带有一些属性的服务。我将属性创建为BehaviourSubject,以便可以订阅它并在发生任何更改时得到通知。

© www.soinside.com 2019 - 2024. All rights reserved.