Angular 8-跟踪显示的组件而不访问URL参数

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

我有两个主要组成部分-列表和详细信息。在第三个组件中,它与前两个组件都不具有父/子关系,我需要知道当前正在使用/显示哪个组件,并在此基础上执行一些操作。

目前,我已在两个组件(列表和详细信息)的每个组件中订阅了URL参数。在这两个订阅中,我设置了一个行为主题(使用下一个),订阅了第三部分。我在列表组件内的URL参数订阅中将行为主题设置为“列表”,在详细组件中对URL参数的订阅中将行为主题设置为“详细信息”。这就是第三个组件始终知道正在显示哪个组件的方式。

我确定还有比玩这种乒乓球更好的方法?

angular components angular-routing rxjs-observables
2个回答
1
投票

对我来说,您的方法似乎是正确的。我做了一个关于如何处理它的Stackblitz示例:https://stackblitz.com/edit/angular-5mfjbz

在示例中,Parent = List和Child = Detail,第三个组件观察其他组件中发生的事情。


1
投票

根据Angular documentation,只有一种方法可以实现不相关的组件交互,共享服务。

从您的问题出发,我认为您不需要解释如何实现共享服务。这是在没有父子关系的组件之间实现通信的唯一方法。

此外,共享服务解决方案易于实现,而不是使用像ngrx这样的存储库>

您可以随时使用存储ngrx,并尝试在需要的地方设置和获取值。

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