Show/Hide div 根据 Angular 9 中的切换按钮变化

Show/Hide div according toggle button change in Angular 9

我的 Angular 应用程序中有 2 个单独的组件。 组件之一是顶部导航栏,它包含切换按钮。 其他组件是仪表板,位于单独的模块中。

我的仪表板包含 2 个 div,其中任何一个都应该 hide/show,具体取决于顶部导航栏组件中切换按钮的变化。

示例:选中切换按钮时 div 1 应显示,div 2 应隐藏。

谁能给我一个带有 stack-blitz 示例的解决方案?

Angular 文档有很好的例子可以处理 component interaction

Stackblitz:Link(假设您的组件既不是同级组件也不在同一模块中)

这里我假设两个独立的组件之间存在绑定,这两个组件既不是彼此的子组件也不是彼此的父组件。

一种处理方法是:

可以在 Rxjs 的 Subject 和服务的帮助下设置和取消设置 Toggle 标志。 StackBlitz Link

  1. 向所有模块共享的主模块添加服务。您可以在两个组件中注入该服务。然后,您需要向仪表板可以订阅的服务添加一个主题。导航将使用该服务来触发主题。 Google‘有主题的基本服务’
  2. 您可以向 url 添加查询参数。然后,该仪表板可以查找它以了解它所处的切换状态。类似于:?toggle=true。它不漂亮,但它有一个优点。您可以添加书签或将 url 发送给某人,它会知道切换状态。

记得使用按钮(不是锚链接)进行切换