最新のAngular CLIビルド(16)を使用していますが、遅延ロードルートを試していますが何らかの理由で失敗しました。新しい質問や解決策が見つかりませんこのため。角2遅延ロード時にRouterOutletMapのプロバイダがありません
フォルダ構造:
core.component.html:
<router-outlet></router-outlet>
core.component.ts:
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {RouterModule} from '@angular/router';
// Modules
import {AdminAreaModule} from './+admin-area';
// Services
import {GlobalsService, RegexService, UtilsService} from './shared';
// Main app component
import {CoreComponent} from './core.component';
@NgModule({
imports: [
BrowserModule,
// Feature modules
AdminAreaModule
],
exports: [
BrowserModule
],
declarations: [
CoreComponent
],
providers: [
GlobalsService,
RegexService,
UtilsService
],
bootstrap: [CoreComponent]
})
export class CoreModule {}
管理エリア-router.module。 ts:
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
// Global modules
import {ComponentsModule, SharedModule} from '../../shared';
// Lazy loaded modules
import {AdminAreaModule} from '../admin-area.module';
@NgModule({
imports: [
RouterModule.forChild([
{
path: 'admin',
loadChildren: 'app/+admin-area/admin-area.module#AdminAreaModule'
}
])
],
exports: [
RouterModule
]
})
export class AdminAreaRouterModule {}
管理-area.module.ts:
import {NgModule} from '@angular/core';
import {AdminAreaRouterModule} from './router';
import {ComponentsModule, SharedModule} from '../shared';
@NgModule({
imports: [
ComponentsModule,
SharedModule,
// Feature modules
AdminAreaRouterModule
],
exports: [
ComponentsModule,
SharedModule,
AdminAreaRouterModule
]
})
export class AdminAreaModule {}
これは、エラーがスローされます:私ははっきりと私のcore.component.ts
ファイルにrouter-outlet
を持っている場合
Error in ./CoreComponent class CoreComponent - inline template:0:0 caused by: No provider for RouterOutletMap!
は、なぜ私はこのエラーを取得していますか?
これは私に 'Maximum callstack exceeded'を与えただけです。 – Chrillewoodz
基本的に私が持っているのは、サイトの2つの部分、管理領域と通常のサイトです。私は ''/''や' '' 'を普通のサイトにし、'/admin'をサイトの管理者にします。だから私は自分のルーティングで2つのモジュールを作った。コアモジュールに '/'と '/ admin'を読み込みませんか?そして、それぞれの子供たちは自分のルーティングファイルに入っていますか? – Chrillewoodz
@Chrillewoodzはい、コアモジュールに/と/ adminを怠けば、それぞれの子供は遅延ロードされたモジュールにバンドルする必要があります。 – koningdavid