假设我们有ComponentA使用该模板:
<div>
<router-outlet></router-outlet>
</div>
ComponentA有routeConfig路由到ComponentB。
如何从路由组件B获取ComponentA?
我试图将@Host注入ComponentB,但我得到了一个例外。
答案 0 :(得分:2)
路由器使用DynamicComponentLoader
添加组件。此类组件的功能有限(无@Input()
可以通过,@Host()
无法使用。
您可以使用ComponentA
自我传入的共享服务,ComponentB
可以读取该值。
此处解释了类似的用例Update parent component title from routed child component in Angular 2。该服务不一定是全球性的。它也可以仅在父级和子级之间共享,方法是将其添加到providers: [MySharedService]
ComponentA
而不是bootstrap()
,如链接答案中所示。