在命名插座中加载一个公共组件
Load a common component in named outlet
我有一个要求,我有一个只有登录组件的登录页面。一旦有人登录,用户就会进入具有左侧导航和右侧组件的页面。借助这个左侧导航,一个人可以导航到不同的组件。
所以问题是,一旦登录,左侧导航组件应该在所有页面上都可用,而不是在登录页面上。
我试图在 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" }]
}
];
命名的商店是一个 PITA,不值得麻烦,特别是对于这个,你可以这样做:
[
{ path: "", component: HomeComponent },
{
path: "messages",
component: NavComponent,
children: [{ path: "", component: MessagesComponent}]
},
{
path: "users",
component: NavComponent,
children: [{ path: "", component: UsersComponent }]
}
];
并在您的导航组件中粘贴一个正常的 <router-outlet></router-outlet>
...在此结构中不需要真正的名称。但我认为您最好使用以下结构:
[
{ path: "", component: HomeComponent },
{
path: "main",
component: NavComponent,
children: [
{ path: "messages", component: MessagesComponent},
{ path: "users", component: UsersComponent }
]
}
];
以及导航组件中的相同路由器插座。这里唯一的区别是你在你的登录路径前加上 "main" 这样你就不需要一遍又一遍地重复你的路线来匹配它们
我有一个要求,我有一个只有登录组件的登录页面。一旦有人登录,用户就会进入具有左侧导航和右侧组件的页面。借助这个左侧导航,一个人可以导航到不同的组件。
所以问题是,一旦登录,左侧导航组件应该在所有页面上都可用,而不是在登录页面上。
我试图在 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" }]
}
];
命名的商店是一个 PITA,不值得麻烦,特别是对于这个,你可以这样做:
[
{ path: "", component: HomeComponent },
{
path: "messages",
component: NavComponent,
children: [{ path: "", component: MessagesComponent}]
},
{
path: "users",
component: NavComponent,
children: [{ path: "", component: UsersComponent }]
}
];
并在您的导航组件中粘贴一个正常的 <router-outlet></router-outlet>
...在此结构中不需要真正的名称。但我认为您最好使用以下结构:
[
{ path: "", component: HomeComponent },
{
path: "main",
component: NavComponent,
children: [
{ path: "messages", component: MessagesComponent},
{ path: "users", component: UsersComponent }
]
}
];
以及导航组件中的相同路由器插座。这里唯一的区别是你在你的登录路径前加上 "main" 这样你就不需要一遍又一遍地重复你的路线来匹配它们