Angular 5:不同模块中的不同路由器出口+延迟加载

情人

我有两个模块,每个模块的html中都有一个路由模块文件和一个路由器插座。我想根据我所在的模块来加载组件。

我的文件树如下所示:

project
|-- module2
|-- -- profil
|-- -- - profil.component.html 
|-- -- - profil.component.ts
|-- -- - profil.component.spec.ts
|-- -- - profil.component.css
|-- -- module2-routing.module.ts
|- module1-routing.module.ts
|- module1.module.ts
|- module1.component.ts
|- module1.component.spec.ts
|- module1.component.css

我有以下文件:

module1-routing.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';

const routes: Routes = [
    { path: '', redirectTo: '/home', pathMatch: 'full' },
    { path: 'home', component: HomeComponent },
    { path: 'module2', loadChildren: './module2/module2.module#Module2Module' }
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class Module1RoutingModule { }

module1.component.html

<router-outlet name="m1"></router-outlet>

module2-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { HomeComponent } from './home/home.component';
import { ProfilComponent } from './profil/profil.component';

const routes: Routes = [
  { path: '', component: HomeComponent },
  { path: 'profil', component: ProfilComponent }
];

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

module2 / home.component.html

<div id="module2-home">

  <app-header></app-header>
  <router-outlet name='m2'></router-outlet>

</div>

我尝试在路由文件中使用插座选项(例如:{path:'profil',组件:ProfilComponent,插座:'m2'}),但出现此错误:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'home'
Error: Cannot match any routes. URL Segment: 'home'
阿卜杜斯·萨塔尔(Abdus Sattar)
// appRouting-routing.module.ts
        const routes: Routes = [
      { path: '', redirectTo: '/login', pathMatch: 'full' },
      { path: 'login', component: LoginComponent },
      { path: 'dashboard', component: DashboardComponent },
      {
        path: 'modules', component: ModulesComponent,
        children: [
          { path: 'module1', component: Module1Component, children: Module1_ROUTE },
          { path: 'module2', component: Module2Component, children: Module2_ROUTE }
        ]
      }
    ];


    //export your child routes from your module1 and module2 routing.ts files
    //example:
   export const Module1_ROUTE: Routes = [
        { path: '', redirectTo: '/home', pathMatch: 'full' },
        { path: 'home', component: HomeComponent }
    ];

请参阅子路线文档这样可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

RC5:在不同的路由器出口中延迟加载NgModule

angular-cli路由器延迟加载

Angular4路由器,延迟加载的模块子路由,命名为路由器出口

Angular 4 ngComponentOutlet和延迟加载模块

使用命名路由器出口的Angular 4延迟加载不起作用

Angular 5无法匹配延迟加载模块的命名出口上的任何路由

Angular-如何使用延迟加载的模块激活AUX路由?

@ ngx-translate与Angular 5中的延迟加载模块

Angular 5:条件模块延迟加载

在延迟加载的模块中使用Angular组件

如何在多级延迟加载ANGULAR 6中设置路由器

angular5延迟加载多个组件

Angular:延迟加载的子路由器模块内部的路由的动态设置

如何在Angular 5中延迟加载外部模块?

Angular7:-延迟加载路由问题

是否可以在Angular 8中预加载延迟加载的模块?

Angular 7延迟加载模块的组件加载两次

延迟加载不加载模块-Angular 8

如何使用延迟加载仅加载angular 8中的模块

Angular-延迟加载条件路由

Angular 7,命名路由器出口在延迟加载的模块中不起作用

包含辅助路由器出口的 Angular 2 延迟加载路由

Angular,在延迟加载的模块中暴露组件

Angular 5 - 组件在延迟加载模块中不可用

带有依赖模块的 Angular 延迟加载

Angular 路由器延迟加载:以相同路径开头的两个不同模块

Angular 中的延迟加载样式

带有路由器出口名称的延迟加载模块中的角度嵌套路由

实现延迟加载模块后,主要组件在路由器插座中呈现两次 - Angular 8