2017-01-02 10 views
0

私はangular-cli.beta-24にアップグレードする前に、私はこのルートの構造を有していた:角度2 AOTと遅延ロードサブモジュール

+route1 
- +subroute1 
- +subroute2 
- +subroute3 

をしかし、彼らは、今見つけることができないので、+route1router.moduleで定義されたsubroutesを持つとき、これは失敗しますそのAOTはデフォルトで有効になっています。

サブルートが定義されておらず、代わりにアプリケーションの他のすべてのルートと同じrouter.moduleに移動することで、動作させることができます。明らかに、もはやsubroutesされていないルートで

+route1 
+subroute1 
+subroute2 
+subroute3 

:代わりに、このように見ています。

ブレッドクラムはルータツリーに依存しているため、これは実用的な解決策ではありません。ルータツリーをもう作成できない場合は、全体的に混乱を招くだけです。

は、ここでの例(route1年代router.moduleファイル)です:

const routes: Routes = [ 
    { 
    path: '', 
    component: Route1Component 
    }, 
    { 
    path: 'subroute1', 
    loadChildren: '+subroute1/subroute1.module#Subroute1Module' 
    }, 
    { 
    path: 'subroute2', 
    loadChildren: '+subroute2/subroute2.module#Subroute2Module' 
    }, 
    { 
    path: 'subroute3', 
    loadChildren: '+subroute3/subroute3.module#Subroute3Module' 
    } 
]; 

AOTを使用しているときに、このようなルートを定義できないのはなぜ?私は何が欠けていますか?

答えて

2

BOTA.21(これについてはpostを作ったので、AOTとレイジーローディングはうまく機能します)。代わりに、あなたがそのようなappフォルダから起動する必要があり.からloadChildrenへの相対パスを渡すの

const routes: Routes = [ 
    { 
    path: '', 
    component: Route1Component 
    }, 
    { 
    path: 'subroute1', 
    loadChildren: 'app/+route1/+subroute1/subroute1.module#Subroute1Module' 
    }, 
    { 
    path: 'subroute2', 
    loadChildren: 'app/+route1/+subroute2/subroute2.module#Subroute2Module' 
    }, 
    { 
    path: 'subroute3', 
    loadChildren: 'app/+route1/+subroute3/subroute3.module#Subroute3Module' 
    } 
]; 

EDITは1: は、それはあなたの樽から来ることができました。

beta.23に問題があり、ベータ版にジャンプしました.24。しかし、ベータ版には大きな変更が加えられています.23ベータ版の変更履歴のみを読んだら、あなたはそれを見逃したかもしれません。 Beta 23 changelog、変更を破る:

青写真:アプリケーションルートモジュールとコンポーネントを直接インポートする必要があります。 ( './app/app.module 'から、例えば、使用インポート{AppModule};代わり' ./app/' からインポート{AppModule}の;)

私はよく理解場合、バレルは、作業されていませんAOT(デフォルトで有効になっています)。基本的には、index.tsを削除して、必要なものを直接インポートする必要があります。

+0

既に運がないとこれを試しました。子供のルートのいくつかは動作しますが、遅延ロードが3レベルのときは決して動作しません。私の 'AppModule'から始めて、私は' AdminAreaModule'を持つ別のレベルを持っています。これは 'DashboardModule'を持っていますが、動作しません。まったく同じ定義を行っています。 – Chrillewoodz

+0

問題を引き起こすのは私のバレル輸入ですか? – Chrillewoodz

+0

私は "バレルインポート"を理解していません。それはどういう意味ですか? – Maxime

関連する問題