路由器出口外部的Angular 2+滑动侧边栏

时间:2018-06-23 22:54:24

标签: angular sidebar router-outlet sidenav

我正在尝试实现一个侧栏,该侧栏可在整个应用程序中通过单击各种按钮打开(“更多信息”类型的功能)。因此,我希望将侧边栏组件放置在路由器插座之外。

应用程序组件:

<nav>
<router-outlet>
<sidebar>

当侧边栏打开时,我想将屏幕的其余部分显示为灰色,并在任何位置单击(除了侧边栏关闭侧边栏)。我认为的方法是将Nav和router-out包裹在一个带有click事件的div中,以关闭边栏。边栏的打开/关闭/切换是通过服务进行管理的。我遇到的问题是将路由器出口(和导航)包裹起来,这样会覆盖要打开侧边栏的路线中的实际按钮单击。有什么建议吗?非常感谢

1 个答案:

答案 0 :(得分:0)

您可能只需要让边栏基于对可观察对象或行为对象的反应即可。我使用BehaviorSubject来接收命令,并在程序的另一部分中对其进行订阅,并使其做出相应的反应。有点像您的应用程序的消息传递系统。对我来说真的很好!您将基于onclicks来驱动它,而完全忘记了该部分的路由。

我不认为您会在侧边栏中执行此操作,而是托管侧边栏的控制器,例如父母。如果您需要代码,请告诉我,但我认为此答案将使您沿着正确的道路前进。

您可以做的另一件事是,一旦您控制了滑块,就可以弹出一个模态div。我没有任何代码。