【发布时间】:2018-07-04 11:51:28
【问题描述】:
我正在创建一个 Angular 5 应用程序,我想将登录模块与应用程序的其余部分分开。创建了两个独立的模块,login.module.ts 和 home.module.ts
login.module.ts 是
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LoginComponent } from './login/login.component';
@NgModule({
imports: [
CommonModule,
BrowserModule
],
declarations: [LoginComponent],
bootstrap: [LoginComponent]
})
export class LoginModule { }
home.module.ts 是
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HomeComponent } from './home/home.component';
@NgModule({
declarations: [HomeComponent],
imports: [
CommonModule,
BrowserModule
],
bootstrap: [HomeComponent]
})
export class HomeModule { }
最后,我的 app.module.ts 是
const appRoutes: Routes = [
{ path: 'login', component: LoginModule },
{ path: 'home', component: HomeModule },
{ path: '', redirectTo: '/login', pathMatch: 'full' }
];
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
LoginModule,
HomeModule,
RouterModule.forRoot(appRoutes)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
虽然在运行应用程序后,我在浏览器控制台中收到以下错误:
core.js:1440 错误错误:未捕获(承诺):错误:未找到 LoginModule 的组件工厂。你把它添加到@NgModule.entryComponents 了吗? 错误:未找到 LoginModule 的组件工厂。你把它添加到@NgModule.entryComponents 了吗?
谁能帮我解决这个问题,或者告诉我做错了什么。
【问题讨论】:
-
你不能对模块使用延迟加载吗?这样你就可以在登录后加载你想要的内容,通过保护你的惰性路由
-
没错。你能帮我实现同样的目标吗?
标签: angular typescript angular5