【发布时间】:2020-04-02 15:48:18
【问题描述】:
我有一个要求,我有一个只有登录组件的登录页面。一旦有人登录,用户就会进入具有左侧导航和右侧组件的页面。借助此左侧导航,人们可以导航到不同的组件。
所以问题是,左侧导航组件应该在登录后的所有页面上都可用,而不是在登录页面上。
我尝试在https://stackblitz.com/edit/angular-common-component-in-named-router-outlet 复制相同的内容,但它只是加载导航组件。路由器配置看起来像
[
{ path: "", component: HomeComponent },
{
path: "messages",
component: NavComponent,
children: [{ path: "", component: MessagesComponent, outlet: "content" }]
},
{
path: "users",
component: NavComponent,
children: [{ path: "", component: UsersComponent, outlet: "content" }]
}
];
【问题讨论】:
-
你需要检查用户是否登录。并且可能在您不想显示的组件上添加
*ngIf="user$ | async"类似的东西,除非有条件。如果你不想去那个页面,你可以使用路由器中的canActivate选项。 -
国际海事组织命名的网点是一个错误(一般来说也是一个错误)。只需构建您的应用程序,以便您拥有登录组件,然后是具有导航和常规主要出口的主要组件