0

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

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

我敢肯定有比打这种乒乓球更好的方法吗?

4

2 回答 2

1

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

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

于 2019-12-12T19:33:39.803 回答
1

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

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

此外,共享服务解决方案易于实施,而不是像使用商店一样ngrx

您始终可以使用 store ngrx,并尝试在需要的地方设置和获取值。

于 2019-12-13T04:09:11.873 回答