如何获取路由组件的父/主机

时间:2016-03-31 06:43:55

标签: angular angular2-routing

假设我们有ComponentA使用该模板:

 <div>
       <router-outlet></router-outlet>
 </div>

ComponentA有routeConfig路由到ComponentB。

如何从路由组件B获取ComponentA?

我试图将@Host注入ComponentB,但我得到了一个例外。

1 个答案:

答案 0 :(得分:2)

路由器使用DynamicComponentLoader添加组件。此类组件的功能有限(无@Input()可以通过,@Host()无法使用。

您可以使用ComponentA自我传入的共享服务,ComponentB可以读取该值。

此处解释了类似的用例Update parent component title from routed child component in Angular 2。该服务不一定是全球性的。它也可以仅在父级和子级之间共享,方法是将其添加到providers: [MySharedService] ComponentA而不是bootstrap(),如链接答案中所示。