2016-08-14 3 views
2

XHRリクエストから読み込んでいる静的なjsonファイルからルートを動的に作成しようとしています。同じjsonファイル。私は、私たちのルート設定でjsonデータをどのように使用できるかを理解しようとしています。angular2 rc5のjsonファイルからルートを作成してコンポーネントを動的にインポートする方法

私が直面している最初の明らかな課題は、角型アプリケーションを初期化する前にjsonデータを取得して設定する方法です。第2に、たとえ私が設定にjsonデータを取得できたとしても、私たちのmodule.jsファイルでどのように宣言するか、あるいは宣言に追加することができます。

誰でも手伝っていただけたらうれしいです。ソースコードが必要な場合はお知らせください。

+0

私はあなたが/これを実行する必要があるのでしょうか良い理由を考えることができない... –

+0

まあ、これは私のCMSの、私も必要ですbased ng2 app。 –

答えて

1

でNG2 RC5 intruduced NgModuleそれが今ここ

可能です@NgModule configです:ここでは

import { routing }  from './app.routing'; 
@NgModule({ 
    imports:  [ BrowserModule,HttpModule,JsonpModule, routing ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

は、コンポーネントのロードである、あなたは、コンポーネントの名前を読み取ることができる文字列配列からのもので見ることができますあなたのデータベースやディスクからJsonファイルから。

const routes: Routes= GetScreens(); 
export const routing = RouterModule.forRoot(routes); 

function GetScreens(){ 
    var results :Array<Object> = Array<Object>(); 
    let screens :Array<string> = ["page1","page2","page3"] 

    results.push({ path: '' ,redirectTo: 'welcome', pathMatch: 'full'}); 
    results.push({ path: 'welcome', loadChildren: 'app/screens/welcome.module'  }) 
    screens.map(screenId => results.push({path: screenId, loadChildren: 'app/screens/' + screenId + '.module' })) 
return results 
} 

ここで言う:{パス: 'ウェルカム'、loadChildren: 'アプリ/スクリーン/ welcome.module'}我々はファイルアプリ/スクリーン/ welcome.module.tsからコンポーネント "ウェルカム" をロード、インポートせず{ }。

PLSのは、ここに全文/詳細コードを確認してください。http://plnkr.co/edit/nm5m7N?p=preview

+0

plnkrの例が正しく動作しない –

+0

はい、動作します。必要に応じてリフレッシュします –

関連する問題