2016-08-18 2 views
0

私は最後のRC5で遅延ロードとモジュールに苦労しています。バンドル内にクラスモジュールをロードするときの角2の遅延ロードエラー

私は、アプリケーションのすべてのモジュールにバンドルを使用しています。だから私はmain.bundle.jsとmoduleA.bundle.jsその後

を持っている私は、私が唯一、main.bundle.jsをロードし、このような私のアプリのためにルーティングされてる自分のアプリケーションをロードするとき:

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

const routes: Routes = [ 
    { 
    path: '', 
    redirectTo: 'main', 
    pathMatch: 'full' 
    }, 
    { 
    path: 'moduleA', 
    loadChildren: 'moduleA.bundle.js#ModuleAModule' 
    } 
]; 

export const routing = RouterModule.forRoot(routes); 

と、これは私のアプリケーションの負荷が罰金私のmoduleA.module.ts

import { NgModule } from '@angular/core'; 

import { routing } from './moduleA.routing'; 
import { ModuleAComponent } from './'; 

@NgModule({ 
    imports: [ 
    routing 
    ], 
    declarations: [ 
    ModuleAComponent 
    ] 
}) 
export default class ModuleAModule { } 

ですが、私はmoduleAに移動するとき、それはバンドルをロードしますが、それは、クラスを見つけることができません。ドキュメントや他の例では

Error: Uncaught (in promise): Error: Cannot find 'ModuleAModule' in 'moduleA.bundle.js' 

これは、彼らがバンドルを使用ドントので作業していて、TSファイルへのパスが、私の場合、これはjavascriptのファイルであり、それはクラスがcan't思われます見つけられた。

私は、モジュールクラスの輸出でデフォルトせず、かつloadChildrenで#ModuleAModuleが、運ととせずに、さまざまな組み合わせを試してみました。それは、モジュール内の 'デフォルト'クラスを見つけられないか、バンドル内でModuleAModuleを見つけることができません。

これがangular2ルーティングの問題、タイスクリプトの問題なのかどうかわかりません... これを克服する方法はありますか?

+0

バンドルの作成には何を使用していますか? –

+0

gulpのsystemjs-builder – David

答えて

0

私がやっていることのために、最終的に実際の設定ができました。

だから、moduleA.module.tsはそのままの状態です。ここにバンドルまたはJSファイルについて、私はmoduleA.module内にあるModuleAModuleからメダルのためのルーティングをロードする角度言うので、この

{ 
    path: 'medals', 
    loadChildren: 'app/components/medals/moduleA.module#ModuleAModule' 
} 

に変えてるapp.routing.tsので、何のため 。今

そして

は、私ができる私は、アプリケーションがmoduleA.moduleを要求したときに、バンドルをロードするためにSystemjsを伝える必要があり、行方不明になった、そしてそれはsystemjs.configに

var config = { 
    bundles: { 
     'moduleA.bundle.js': ['app/components/moduleA/moduleA.module.js'] 
    }, 
... 
}; 

この方法で行われているものですindex.htmlからmoduleA.bundle.jsを削除し、必要に応じてsystemjsがそれを要求します。 お手伝い願います!

関連する問題