如果一个角应用程序有两个模块:AppModule和ProfileModule,它们可以配置自己的路由。
在这指南中,它指出路由配置的顺序非常重要。举个例子:
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{ path: 'hero/:id', component: HeroDetailComponent },
{
path: 'heroes',
component: HeroListComponent,
data: { title: 'Heroes List' }
},
{ path: '',
redirectTo: '/heroes',
pathMatch: 'full'
},
{ path: '**', component: PageNotFoundComponent }
];在这里,首先计算crisis-center路径,最后计算**路径。
但是,如果AppModule和ProfileModule配置了自己的路由,则不清楚对某个路由的评估是如何发生的。如果AppModule路由配置的最后有一个**路由,这将匹配与AppModule中的其他路由不匹配的所有路由。这将使ProfileModule的路由配置毫无用处。
那么,当有多个模块有自己的路由信任时,路由的优先级如何工作呢?
发布于 2018-03-08 04:36:43
根据那些角舵
每个路由模块按照导入顺序增加路由配置。如果首先列出AppRoutingModule,则通配符路由将在英雄路由之前注册。与每个URL匹配的通配符路由将拦截导航到英雄路径的尝试。
因此,订单是基于您导入模块的顺序。在您的示例中,您需要首先导入ProfileModule,这样AppModule路由列表末尾的**路由就不会阻止任何其他路由的处理。
发布于 2018-03-08 09:38:39
在多个模块的情况下,通配符路由应该是整个应用程序中的一个,就好像每个模块中都存在一样,首先导入的一个模块的路由将优先于所有其他模块的整个路由集。
如果您为模块添加了默认路由,这将如何与任何其他模块的默认路由区别.模块(app/modA或app/modB)本身的入口点应该是模块本身的默认入口点。其他任何东西都应该默认为应用程序自己的逻辑
https://stackoverflow.com/questions/49164610
复制相似问题