Angular Router:如何处理对子模块路由器的委托

戴维·L。

能否请您给我建议,如何处理高级组件router-outlet和子组件中的其他组件router-outlet

在我看来,在这种情况下,我需要将子组件包含在自己的模块中,并使用为其提供自己的路由器RouterModule.forChild配置完成后,我可以在上显示主要组件localhost:4200/main,但是在执行以下操作时出现此错误localhost:4200/main/section

Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'main/section'

我在app.component.html中:

<router-outlet></router-outlet>

在这个app.component.html我想显示MainViewComponentlocalhost:4200/main

MainViewComponent组件位于其自己的模块中,具有自己的逻辑以在其模块中显示其子组件,<router-outlet></router-outlet>并且应通过类似localhost:4200/main/section的url访问localhost:4200/main/section2

app / app-routing.module.ts(由app.module.ts导入)

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { MainViewComponent } from './main-view-module/main-view/main-view.component';

const routes: Routes = [
  { path: '', redirectTo: 'main', pathMatch: 'full' },
  { path: 'main', component: MainViewComponent }
];

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

app / main-view-module / app-routing.module.ts(由app / main-view-module / main-view.module.ts导入)

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { SectionViewComponent }      from './main-view-module/section-view.component';
import { Section2ViewComponent }      from './main-view-module/section2-view.component';

const routes: Routes = [
  { path: '', redirectTo: 'section', pathMatch: 'full' },
  { path: 'section', component: SectionViewComponent },
  { path: 'section2', component: Section2ViewComponent }
];

@NgModule({
  imports: [
    RouterModule.forChild(routes)
  ],
  exports: [ RouterModule ]
})
export class AppRoutingModule { }
戴维·L。

经过进一步研究:

我寻找的功能称为“延迟加载”

为了使我的工作,例如我不得不添加loadChildren属性到path我的app/app-routing.module.ts

const routes: Routes = [
  { path: '', redirectTo: 'main', pathMatch: 'full' },
  { path: 'main', component: MainViewComponent,
        loadChildren: 'app/main-view-module/main-view.module#MainViewModule'
  }
];

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular 2 RC5子模块以使用父路由器出口

Angular2路由器(@ angular / router),如何设置默认路由?

Angular CLI在错误的位置寻找路由器模块?“找不到router_module”

如何路由后页-Ionic 4 Angular路由器模块

Angular 如何处理来自 Angular 库的非导入模块?

Angular 4 Router-钩住每个路由器的更改

如何在Angular 2(路由器3)中处理租户子域

强制在 angular 的路由器之外处理相同的域链接

带有子模块的 Angular 4 路由

将 Angular (5.2) 路由器与 angular-ui-router (angular 1.3.19) 结合使用

路由器如何处理IP

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

Angular 2新路由器:如何获取子组件的路由器参数?

如何处理angular-ui-router解析中的错误

如何使用路由器出口加载Angular组件

在Angular中,如何定义“路由器”成员字段?

Angular2:如何从路由器获取路径数组?

Angular 2如何测试使用路由器的组件

如何绕过 Angular 2 中的路由器

如何使用新的Angular路由器嵌套视口?

Angular:如何获取路由器出口的组件实例

Angualr:如何使用 Angular 路由器传递数据

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

Angular 5路由器模块化功能模块

Angular2路由器VS ui-router-ng2 VS ngrx路由器

Angular2子模块的forChild()路由覆盖根路由

如何在angular2中使用简单路由器处理预编译数组警告

带有子路由的Angular 2路由器通配符处理

如何使用Angular创建子模块