【问题标题】:Cannot Find Match For the URL For Lazy Loaded Module无法为延迟加载模块的 URL 找到匹配项
【发布时间】:2018-12-19 15:27:25
【问题描述】:

我正在尝试使用延迟加载的模块路由,如下所示,但它找不到 URL localhost:4200/authorization/opcodes 的匹配项。不过它可以加载主页。

src\app\app-routing.module.ts

const routes: Routes = [
{
    path: '',
    loadChildren: './modules/main-page/main-page.module#MainPageModule'
},
{
    path: 'feature',
    loadChildren: './modules/feature/feature.module#FeatureModule'
}

];

src\app\modules\main-page\main-page-routing.module.ts

const routes: Routes = [
{
    path: '',
    component: MainPageComponent,
    canActivate: [AuthGuard],
    children:[
        {
           path: 'authorization',
           loadChildren: './authorization/authorization.module#AuthorizationModule'
         }
      ]
    }
];

src\app\modules\main-page\authorization\authorization-routing.module.ts

const routes: Routes = [
{
    path: 'opcodes',
    component: OpCodeComponent
}
];

@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})

MainPageComponent 是主要布局,其中包括将承载 OpCodesComponent 的路由器出口。

所以路由流程应该是:AppRouterModule --> MainPageRouterModule --> AuthorizationRouterModule。

【问题讨论】:

  • 主页面,看起来你的应用程序的第一页是延迟加载的?这没有意义
  • @benshabatnoam 好吧,应用程序组件仅包含一个路由器,并且根据用户的登录状态,导航会加载身份验证模块(我将其重命名为上面的功能模块,以防止身份验证之间的混淆和授权)或授权模块,这是另一个功能模块。

标签: angular lazy-loading angular-routing


【解决方案1】:

我发现了问题。显然,我忘记将 AuthorizationRoutingModule 导入 AuthorizationModule。并且该框架没有给出暗示这一点的警告。如果 Angular 明确警告这一点会很有帮助。

【讨论】:

  • 那么,你配置的路由就OK了吗?
猜你喜欢
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 2021-04-03
  • 2018-05-22
  • 2017-02-17
  • 2017-02-22
相关资源
最近更新 更多