2016-10-11 27 views
1

私は遅延ロードを使用してAngular 2プロジェクトに取り組んでいます。それはうまくいっていますが、私が必要とするのは、サーバーからモジュール名を取得してルートを作成することですが、動作しません。ここで角度2遅延ロード - サーバからのルート

は私が持っているものです。

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

function getRoutes(): Routes{ 
    let x: any = [ 
     {path: '', redirectTo: 'welcome', pathMatch: 'full'}, 
     {path: 'backend', loadChildren: 'app/backend/backend.module'} 
     ] 
    return x; 
} 

export const routes: Routes = routess(); 

export const routing = RouterModule.forRoot(routes); 

そして、ここですが、私は何が必要です:

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

function getRoutes(): Routes{ 
let x: any; 

$.get("api/getRoutes", function(data) { 
    x = data; //object array from server 
}); 
    return x; 
} 

export const routes: Routes = routess(); 

export const routing = RouterModule.forRoot(routes); 

問題は機能getRoutesは、サーバーの結果を返すのを待っていないこと、です空のデータ。

サーバのデータを待ってからルートにデータを追加する方法はありますか?

答えて

0

基本的なルーティング設定(/welcomeなど)の場合にのみNgModuleを使用して、アプリ内の他の場所でルートを読み込んでルータ設定を更新します。 resetConfig()を使用できます。

this.http.get('/api/getRoutes') 
    .subscribe(config => this.router.resetConfig(config)) 
+0

ありがとうございます。 –

関連する問題