2016-10-29 3 views
4

나는 지연로드를 수행해야하는 angular2 유성 앱을 만들고 있습니다.angular2-meteor 앱에서 지연로드를 사용하는 방법

나는 게으른 로딩을 위해 각도 2를 시도했다. 내가 게으른 로딩 나는이 오류가 무엇입니까를 추가 한 후 내 코드를 실행하면

import { Route } from '@angular/router'; 
import { Meteor } from 'meteor/meteor'; 
import { LoginComponent } from './modules/loginComponent/login.component'; 
export const routes: Route[] = [{ 
    path: '', 
    redirectTo: "login", 
    pathMatch: "full" 
}, { 
    path: 'login', 
    component: LoginComponent 
}, { 
    path: 'csvtemplate', 
    loadChildren: './modules/core/core.module#CoreModule' 
} 
]; 

core.route.ts

const routes: Routes = [ 
    { path: '', component: TemplateComponent, 
    children: [{ 
     path: '', 
     redirectTo: 'csvtimeline' 
    }, 
    { 
     path: 'csvtimeline', 
     component: CsvTimelineComponent 
    }, { 
     path: 'csvjson', 
     component: CsvJsonComponent 
    }, { 
     path: 'addcategory', 
     component: CsvAddProductComponent 
    }, { 
     path: 'adduser', 
     component: adduserComponent 
    } 
    ] 
} 
]; 

을 app.routes.ts.

core.umd.js:3257 EXCEPTION: Uncaught (in promise): ReferenceError: System is not defined 
ReferenceError: System is not defined 
    at SystemJsNgModuleLoader.loadAndCompile (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:7882:20) 
    at SystemJsNgModuleLoader.load (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:7875:64) 
    at RouterConfigLoader.loadModuleFactory (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:18376:76) 
    at RouterConfigLoader.load (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:18368:52) 
    at MergeMapSubscriber.project (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:19111:82) 
    at MergeMapSubscriber._tryNext (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:46645:27) 
    at MergeMapSubscriber._next (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:46635:18) 
    at MergeMapSubscriber.Subscriber.next (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:44167:18) 
    at ScalarObservable._subscribe (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:54671:24) 
    at ScalarObservable.Observable.subscribe (http://localhost:3000/packages/modules.js?hash=61f678ddc710f75692a22ec6b345330dc289d744:43030:27) 

왜 작동하지 않습니까? 작동하도록하려면 어떻게해야합니까?

누구나 angular2-meteor 앱에서 게으른 로딩을 사용하는 방법을 알려 줄 수 있습니까?

답변

2

나는 각도 유성 지원 지연로드 지금 생각합니다. 여기 완전한 예를 들어

import {Route, RouterModule} from '@angular/router'; 
import {NgModule} from "@angular/core"; 
import {Home} from "../home/home.component"; 
import {CheapModule} from "../cheap/cheap.module"; 

declare global { 
    interface NodeModule { 
    dynamicImport(path: string): any; 
    } 
} 

export const appRoutes: Route[] = [ 
    { path: '', component: Home }, 
    { 
    path: 'cheap-route', 
    loadChildren:() => CheapModule 
    }, 
    { 
    path: 'expensive-route', 
    loadChildren:() => module.dynamicImport('../expensive/expensive.module').then(m => m.default) 
    } 
]; 

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

export class AppRoutingModule {} 

이 github의의의 repo를 확인하는 방법의 코드는 https://github.com/joerex/angular-meteor-lazy-load

+0

, 나는 많은 문제가 – Mattijs

+0

질문 일 SystemJS을 받고 한 작업 예제를 볼 대 : 차이 사이는 무엇인가 싸고 비싼 짐? 둘 다 내 네트워크 탭에서 아무 것도 보이지 않습니다. 나는 cheapModule이 고가의 모듈로 가져 왔음을 깨닫습니다. 하지만 실제로 부하 성능에 차이가 있습니까? 아니면 한계가 있습니까? 모든 JS 코드가 축소되고 연결되어 있으므로 모든 것이 선상에로드됩니다. 또한 dynamicImport가있는'module' 객체를 어떻게 입력 하시겠습니까? – Mattijs