angular4 loadchildren 第二层的时候 提示 找不到模块

angular4 使用loadchildren 第二层的时候 提示 找不到模块。看代码

根模块
//app-routing.module
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
    { path: 'home', loadChildren: './home/home.module' }
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AppRoutingModule { }
//home-routing.module
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home.component';

const routes: Routes = [
  { path: 'list', loadChildren: '../list/list.module' }//这里会报错找不到
];

@NgModule({
  imports: [RouterModule.forChild([{ path: "", component: HomeComponent, children: routes }])],
  exports: [RouterModule]
})
export class HomeRoutingModule { }

报错

//list.module
import { ListComponent } from './list.component';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { ListRoutingModule } from './list-routing.module';

@NgModule({
  imports: [
    CommonModule,
    ListRoutingModule
  ],
  declarations: [ListComponent]
})
export default class ListModule {
  constructor() {
    console.log("listmodule");
  }
}

在第一次启动的时候不能访问 不过编辑一下home-routing.module (随便敲个空格保存一下就可以访问了)

阅读 7.5k
2 个回答
const routes: Routes = [
    { path: 'list', loadChildren: '../list/list.module#ListModule' }
    // 这里添加「#」后面跟导出的模块名
];
//app-routing.module
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
    { path: 'home', loadChildren: './home/home.module#HomeModule' }
];

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

去掉HomeModule模块里面的default,使用#的方式即可正常路由

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进