ngmodule 不是子类型 ngmoduletype

poo*_*opp 9 angular-routing angular-module angular angular9

我使用 angular 9 并且我想做延迟加载 app-routing

{
    path: '', loadChildren: () => import("./components/login/login.module")//.then(m =>
     // m.LoginModule)
  }
Run Code Online (Sandbox Code Playgroud)

在我创建登录模块之后:

@NgModule({
    declarations: [LoginComponent],
    imports: [
        CommonModule,
        FormsModule,
        LoginModuleRouting

    ],
    providers:[]
})
export class LoginModule { }
Run Code Online (Sandbox Code Playgroud)

和路由:

const routes: Routes = [
  {
    path: '', component: LoginComponent,

  }
];

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


export class LoginModuleRouting { }
Run Code Online (Sandbox Code Playgroud)

问题是,当我打电话ng serve并继续访问 ` http://localhost:4200/ 时,我得到了这个异常:

core.js:6237

 ERROR Error: Uncaught (in promise): Error: ASSERTION ERROR: NgModule '[object Module]' is not a subtype of 'NgModuleType'. [Expected=> null != null <=Actual]
Error: ASSERTION ERROR: NgModule '[object Module]' is not a subtype of 'NgModuleType'. [Expected=> null != null <=Actual]
Run Code Online (Sandbox Code Playgroud)

我不知道这是什么意思。任何人都可以帮助我吗?

Bin*_*s00 14

我遇到的这个问题是因为在我的角度组件中使用独立,然后在 app.routes.ts 中使用loadChildren和延迟加载路线。我所要做的就是将loadChildren更改为loadComponent

在 app.routes.ts 中是

{
  path: 'login',
  loadChildren: () => import('./pages/login-page/login-page.component').then( m => m.LoginPageComponent)
},
Run Code Online (Sandbox Code Playgroud)

应该是

{
  path: 'login',
  loadComponent: () => import('./pages/login-page/login-page.component').then( m => m.LoginPageComponent)
},
Run Code Online (Sandbox Code Playgroud)


小智 8

我也有这个问题。

我的问题是我声明的 NgModule 没有@。添加它修复了该消息。


小智 5

我不知道为什么,但您在 loadChildren() 上注释掉了您的登录模块:

{
path: '', 
loadChildren: () => import("./components/login/login.module")//.then(m =>
     // m.LoginModule)
}

Run Code Online (Sandbox Code Playgroud)

它应该是:

{
path: '', 
loadChildren: () => import("./components/login/login.module").then(m => m.LoginModule)
}

Run Code Online (Sandbox Code Playgroud)