2016-08-15 7 views
4

Routeの指定されたloadChildren属性を使用してNgModuleを処理するために遅延読み込みを取得できました。Angular2(RC5)で単一のコンポーネントを遅延ロードする方法

import {RouterModule} from ‘@angular/router’ 
import {NgModule} from ‘@angular/core’ 
@NgModule({ 
    declarations: [ MyComponent, MyHomeRoute ], 
    bootstrap: [ MyComponent ], 
    imports: [ 
    RouterModule.forRoot([ 
    { path: ‘home’, component: MyHomeRoute }, 
    { path: ‘lazy’, loadChildren: ‘./my-lazy-module’ } 
    ]) 
}) 
class MyAppModule {} 

しかし、「コンポーネント」属性の文字列を使用して(NgModuleではなく)怠惰な負荷に単一のコンポーネントを、ルートを設定する方法はありますか?

私はいつものようにエラーをgeting終わる:

import { Routes, RouterModule } from '@angular/router'; 
const routes: Routes= [{path: 'welcome', loadChildren: 'app/screens/welcome.module'}]; 
export const routing = RouterModule.forRoot(routes); 

ここ:
そして、オンデマンドでロード

+1

コンポーネントを独自のモジュールに移動することができます。 –

+0

まあ...私はそれを知っています。 1つのコンポーネントをラップするだけであれば、不要な「定型化」のように思えます。これを行う唯一の方法だと言っていますか?ルートの「コンポーネント」プロパティが文字列であることがわかっているので、おそらくコンポーネントを動作させるための遅延ロードの意図があるようです。 – noxborough

+0

それはRC.5の前の道だった。私はこうしてまだ働くことになっているのかどうかはわかりません。 –

答えて

0
@NgModule({ 
    imports:  [ BrowserModule, routing ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

" 'lazyComponent' を使用してコンポーネントを解決できません" loadChildren:「アプリ/screens/welcome.module 'はtsファイルです。app/screens/welcome.module.ts

詳細については、ex十分な、これを確認した:http://plnkr.co/edit/18CZVF?p=preview

+0

@GunterZochbauerが推奨するのと同じソリューション。 – noxborough

+0

Plunkrファイルは、その中のリンクをクリックすると何もしません – TetraDev

関連する問題