angular - Angular 2+ 滑动侧边栏在路由器出口外
问题描述
我正在尝试实现一个侧边栏,在整个应用程序中单击各种按钮时打开(“更多信息”类型的功能)。出于这个原因,我希望将侧边栏组件放置在路由器插座之外。
应用组件:
<nav>
<router-outlet>
<sidebar>
当侧边栏打开时,我想将屏幕的其余部分变灰并在任意位置单击(在侧边栏旁边关闭侧边栏)。我想这样做的方法是将导航和路由器出口包装在一个带有单击事件的 div 中以关闭侧边栏。侧边栏打开/关闭/切换由服务管理。我遇到的问题是像这样包装路由器插座(和导航)会覆盖用于打开侧边栏的路由内的实际按钮单击。有什么建议吗?非常感谢
解决方案
您可能只需要让侧边栏根据订阅可观察对象或行为主题做出反应。我使用 BehaviorSubject 来接收命令,并在程序的另一部分订阅它,并让它做出相应的反应。有点像你的应用程序的消息系统。它对我来说真的很好用!您将根据点击来驱动它,而完全忘记这部分的路由。
我认为您不会在侧边栏中执行此操作,而是在承载侧边栏的控制器(例如父级)中执行此操作。如果您需要代码,请告诉我,但我认为这个答案会让您走上正确的道路。
您可以做的另一件事是,一旦您控制了滑块,您就可以让它弹出一个模态 div。我没有任何代码。
推荐阅读
- python - 计算多边形中点之间的距离
- java - 为什么我的 Java 输出字符串以 % 字符结尾?
- vue.js - 为什么 vue 发出不允许我更新父数据?
- networking - 给定掩码可能有多少个子网
- python - 是否可以同时运行两个代码?一个用于检查和关闭广告,另一个用于玩点击游戏
- elixir - 标准库模块在 CI 上不可用(偶尔)
- android - 我可以在不使用服务的情况下使用广播接收器在后台接收隐式广播吗?
- php - CodeIgniter 4 - 隐藏会话类初始化消息
- math - 有没有办法使用位运算符而不是多个三元运算符?
- python - numpy 索引到 dtype=object 的数组