Angular:处理嵌套的路由器出口和子模块

时间:2018-02-07 13:13:48

标签: angular angular-module router-outlet

我正在与Angular进行一些实验,了解如何定义完全包含的'模块(意味着每个模块不仅应该有自己的组件定义,还应该有它们的路由,如果需要,还要保护它们的每条路由),但是我面临着嵌套路由和相应问题的一些问题。 router-outlets

此实验的主要目的是为用户提供不同的布局:

  • 如果未经过身份验证,系统会显示一个包含登录表单的简单页面(还有一项更改是“忘记密码?'表单类型,在另一条路线上)
  • 如果经过身份验证,则布局(我称之为private-layout)应始终具有导航栏和router-outlet,其中应显示经过身份验证时可访问的页面。

问题在于,由于某种原因,private-layout未被注入,其嵌套路由直接注入主router-outlet

我有一个可以更好地说明情景的Stackblitz:https://stackblitz.com/edit/angular-bsqgfl

正如您所看到的,当应用程序启动时,它会直接进入AuthModule(因为它与空路径匹配),您可以在其中看到“登录”。组件注入到Auth的router-outlet中。你甚至可以尝试切换登录'到了'忘了 - '并且忘了密码'嵌套内容将按预期注入。 但是,如果您尝试将网址更改为“测试”,而不是看到导航条和测试组件也会被注入,则导航栏根本不显示,因为测试组件直接注入主{ {1}}。

我相当确定这与我如何定义路线有关,但我希望他们尽可能保持与模块的接近,但我不能想办法解决这个问题。我在这里遇到了一些答案,但他们都在一个地方定义了所有可能的应用程序路线,但我希望我的每个模块都能分布。

0 个答案:

没有答案