角度|跨组件交流的简便方法?

时间:2018-11-17 10:41:48

标签: angular

我知道关于如何在组件之间进行通信的帖子太多了。

我知道这里基本上有3种方法:

  • 将一个组件的引用传递给另一个组件
  • 通过父组件进行通信
  • 通过服务进行通信

如果我在两个组件之间没有父/子/姐妹关系,那么我看到的唯一方法就是通过服务。但是:对于以下示例,这是极其错误的:

<my-navbar></myNavbar>
<router-outlet><router-outlet>

这将是<app-root>元素内部的结构

我希望导航栏导航到/home时具有不同的样式,然后由路由器将其作为<router-outlet>旁边的元素加载

目前,我是通过在ngOnInit的{​​{1}}方法中调用服务函数来实现的,该服务函数设置了绑定到/home组件内的类的布尔值。

为此使用服务是错误的。

我知道我可以在my-navbar内创建一个事件处理程序,当活动路由处于活动状态时由路由器触发。但是我还有其他一些独立于路由器的情况,因此我正在寻找更通用的解决方案。

实现此目标的正确方法是什么?

0 个答案:

没有答案