3

我正在使用 @ngrx 和 @ngrx/router-store 开发 Angular2 应用程序,用于路由操作。

我正在尝试重组应用程序以尝试遵循指南中描述的模块路由指南:https ://angular.io/docs/ts/latest/guide/router.html#!#crisis-child-routes

我正在构建的应用程序允许用户登录特定“位置”的帐户。用户登录后,URL 包含当前位置作为开始,类似于登录 Gmail 时显示的用户/帐户:https://mail.google.com/mail/u/0/

以下是路线的大致轮廓:

/login
/location/:id                 <-- LocationModule/LocationRoutingModule
/location/:id/home            <-- HomeModule/HomeRoutingModule
/location/:id/calendars       <-- CalendarModule/CalendarRoutingModule
/location/:id/calendars/:cid
/location/:id/clients         <-- ClientModule/ClientRoutingModule
/location/:id/clients/:cid
/location/:id/clients/:cid/...

现在,我希望各个功能模块(主页、日历、客户端)不必知道路线中的“它们所在的位置”(即它们不知道它们是否作为 '/' 或 ' 的子级存在/位置/:ID'。

只要要素之间没有路线,这很好。但是,在某些情况下,有必要在功能区域/模块之间导航(我正在尝试最小化这些)。例如,“home”组件上有一个链接应该路由到日历。

我唯一的想法是(我都不太喜欢):

  • LocationModule在子模块用于路由的级别提供的服务:
  • 一个@ngrx 效果“外部”HomeModule触发动作“SELECT_CALENDAR”并知道正确的“基本”路由用于路由到日历功能区域

有没有其他干净的方法来实现这个?不同的模块结构/层次结构?

如果不是,有任何支持或反对我的两个潜在实现的论据吗?关于如何最好地实施的建议?

谢谢

4

0 回答 0