Angular 6: невозможно загрузить дочерний маршрут при загрузке страницы - PullRequest
0 голосов
/ 31 августа 2018

У меня проблема с перезагрузкой страницы, например, на маршруте функционального модуля; Я могу перейти к

http://example.com/#/dashboard

, но если после этого принудительно обновить страницу в браузере, я получаю следующую ошибку навигации:

Router Event: NavigationError
platform-browser.js:211 NavigationError(id: 1, url: '/dashboard', 
error: TypeError: undefined is not a function)
platform-browser.js:211 NavigationError {id: 1, url: "/dashboard", 
error: TypeError: undefined is not a function
at Array.map (<anonymous>)
at webpackAsyncContext (ht…}

Мои файлы маршрутизации читаются следующим образом:

приложение-routing.module.ts:

import { NgModule } from '@angular/core';
import { RouterModule, Routes, CanActivateChild } from '@angular/router';

const routes: Routes = [
    {
        path: 'dashboard',
        loadChildren: './dashboard/dashboard.module#DashboardModule'
    },
    { 
        path: '',
        redirectTo: '',
        pathMatch: 'full'
    }
];

@NgModule({
  imports: [

    RouterModule.forRoot(routes, { enableTracing: true, useHash: true } )
  ],
  exports: [
    RouterModule
  ]
})
export class AppRoutingModule {}

приборная панель-routing.module.ts:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { DashboardComponent } from './dashboard.component';

const routes: Routes = [
    { 
        path: '', 
        component: DashboardComponent
    }
];

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

dashboard.module.ts:

import { NgModule } from '@angular/core'
import { CommonModule } from '@angular/common'

import { SharedModule } from '../shared/shared.module'

import { DashboardRoutingModule } from './dashboard-routing.module'
import { DashboardComponent } from './dashboard.component'

@NgModule({
    imports: [
        CommonModule,
        DashboardRoutingModule,
        SharedModule
    ],
    declarations: [
        DashboardComponent
    ],
    exports: [
        DashboardRoutingModule
    ]
})
export class DashboardModule { }

app.module.ts:

import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'

import { CoreModule } from './core/core.module'
import { SharedModule } from './shared/shared.module'

import { DashboardModule } from './dashboard/dashboard.module'
import { AppRoutingModule } from './app-routing.module';

import { AppComponent } from './app.component';

import { DashboardComponent } from './dashboard/dashboard.component'

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    CoreModule,
    BrowserAnimationsModule,
    AppRoutingModule,
    CoreModule.forRoot(),
    DashboardModule,
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

1 Ответ

0 голосов
/ 31 августа 2018

Если вы используете отложенную загрузку, вы НЕ ДОЛЖНЫ включать отложенный загруженный модуль в качестве импорта (и вы не можете использовать импорт TS из этого модуля), потому что он будет загружен вдоль импортирующего модуля.

planet_hunter очень заинтересован в том, чтобы определить ваш импорт.

...