Модуль отложенной загрузки не работает - PullRequest
0 голосов
/ 12 июня 2018

У меня есть файл app.routing.ts, как показано ниже

    import { ModuleWithProviders, NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { AppComponent } from './app.component';
    import { SalesComponent } from './advisory/sales.component';

    const appRoutes: Routes = [
        {
            path:'admin',loadChildren:'app/auth/admin/admin.module#AdminModule'
        },
        {
            path: '',
            redirectTo: '/main',
            pathMatch: 'full'
        },
        {
            path: 'main', component: SalesComponent,
            data: { apptitle: 'main', subtitle: 'main' }
        },

    ];

@NgModule({
    imports: [RouterModule.forRoot(appRoutes, 
        { useHash: true },
        )],
    exports: [RouterModule]
})

export class AppRoutingModule { }

И файл admin.module.ts функционального модуля, как показано ниже

 import { NgModule } from '@angular/core';
    import { CommonModule } from '@angular/common';
    import { AdminComponent } from './admin.component';
    import { RouterModule } from '@angular/router';

    @NgModule({
      imports: [
    CommonModule,
    RouterModule.forChild([{
    path: '',
    component: AdminComponent,
    }
    ]),

    declarations: [AdminComponent]
    })

    export class AdminModule { }

Если я нажму localhost: 4200/ # / main в браузере, он работает, но если я ввожу localhost: 4200 / # / admin или localhost: 4200 / admin - он обновляет и загружает ту же главную страницу.Любая идея, почему это может происходить и какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вот StackBlitz, где он работает https://stackblitz.com/edit/angular-f568ym?file=src%2Fapp%2Fapp.component.html

Вы должны использовать относительный путь.

path:'admin',loadChildren:'./auth/admin/admin.module#AdminModule'

Также у вас может быть проблема с маршрутамиопределенный в AdminModule

Я бы изменил синтаксис в AdminModule на этот:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminComponent } from './admin.component';
import { RouterModule } from '@angular/router';

const adminRoutes: Routes = [
  {
      path:'',
      component:AdminComponent,
      pathMatch: 'full'
  }
];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forChild(adminRoutes)
  ],
  declarations: [AdminComponent]
})

export class AdminModule { }
0 голосов
/ 12 июня 2018

Полагаю, путь неверный, вместо него следует использовать относительный путь,

 path:'admin',loadChildren:'./auth/admin/admin.module#AdminModule'
...