2016-09-26 4 views
0

Я использую полную версию angular2, и я пытаюсь реализовать ленивую загрузку. моя основная маршрутизация, как показано нижеLazy loading webpack angular2

export const ROUTES: Routes = [ 
    { path: 'login', component: LoginPage }, 
    { path: 'reset-password', component: Myaccount }, 
    { 
     path: '', 
     redirectTo: 'app', 
     pathMatch: 'full' 
    }, 
    ...ROUTES_APP, 
    { path: "sub", loadChildren: "es6-promise?,[name]!./app/sub/sub.module#SubModule" }, 
]; 

Мой Sub маршрутизация, как показано ниже

import { Routes, RouterModule } from "@angular/router"; 
import { SubAppComponent } from "./sub-app.component"; 
import { SubHomeComponent } from "./sub-home.component"; 

export const subRoutes: Routes = [ 
    { 
    path: "", 
    component: SubAppComponent, 
    children: [ 
     { path: "", component: SubHomeComponent } 
    ] 
    }, 
]; 

export const subRouting = RouterModule.forChild(subRoutes); 

подмодуля Моего, как показано ниже

import { NgModule } from "@angular/core"; 
import { subRouting } from "./sub.routing"; 
import { SubAppComponent } from "./sub-app.component"; 
import { SubHomeComponent } from "./sub-home.component"; 

@NgModule({ 
    imports: [ 
    subRouting, 
    ], 
    declarations: [ 
    SubAppComponent, 
    SubHomeComponent, 
    ], 
}) 
export class SubModule { 
} 

во время навигации к югу я получаю ошибку Но я я получаю ниже погрешности

core.umd.js: 3462 ИСКЛЮЧЕНИЕ: Недоступно (в про режиссура): TypeError: System.import не является функцией

Пожалуйста, помогите мне в этом/дайте мне знать, как обращаться с отложенной загрузки с помощью Webpack

+0

Ваш title говорит webpack, но ваша ошибка говорит, что вы все еще используете 'System.js'. Версия web-сайта Angular2 вообще не использует system.js. – choz

+0

Из-за этого я удивился! –

+0

Вы используете angular-cli? – mxii

ответ

2

я решил выше при использовании требуют

{ path: "sub", loadChildren:() => require("es6-promise!./app/sub/sub.module")("SubModule") } 
-1

Попробуйте угловой маршрутизатор-погрузчик

Выполните следующие действия ..

npm install angular-router-loader --save-dev 

в вашем маршрут для отложенной загрузки

import { Routes } from '@angular/router'; 

export const routes: Routes = [ 
    { path: 'lazy', loadChildren: './lazy.module#LazyModule' } 
]; 

для синхронной загрузки

import { Routes } from '@angular/router'; 

export const routes: Routes = [ 
    { path: 'lazy', loadChildren: './lazy.module#LazyModule?sync=true' } 
]; 

в webpack.config.js

test: /\.ts$/, 
    loaders: [ 
     'awesome-typescript-loader', 
     'angular-router-loader' 
    ] 
    } 
+1

Я получаю ИСКЛЮЧЕНИЕ: Максимальный размер стека вызовов превышен. Subscriber.js: 227 Uncaught RangeError: Максимальный размер стека вызовов –

+0

Пробовал, удаляя все комментарии заново, такую ​​же ошибку. Если у вас есть ссылка github, пожалуйста, предоставьте мне. –