2016-11-13 5 views
3

Angular2。ジョブシーク担当者と雇用者のために2つの異なるルートモジュールセットをロードする。 URLは同じですが、求職者と雇用主のモジュールは異なります。私は、ログインのセッションにルートモジュールベースを動的にロードしたいと思っています。そこには私ができる方法はありますか?あるいは、それは基本的に私は以下 Angular2 NGモジュールで。条件に基づいて2つの異なるルートモジュールセットをロードしたい。

条件

に基づいてngModulesを読み込むことができるようにしたいangular2

で実装することができます良い方法は、サンプルコードがされています。

@NgModule({ 
    imports: [BrowserModule, HttpModule,customRoutes.getCustomRoutes(), 
      SharedModule.forRoot()], 
    declarations: [AppComponent], 
    providers: [ 
    { 
    provide: APP_BASE_HREF, 
    useValue: '<%= APP_BASE %>' }, 
    CanActivateGuard,AccountService, ProfileService], 
    bootstrap: [AppComponent] 
}) 

export class AppModule { 

    constructor(private _http:Http,@Inject(AccountService) authService:AccountService) { 


    } 

//カスタムルート

export class customRoutes { 

    public customRoutes; 
    constructor(@Inject(AccountService) accountService:AccountService) { 


    } 

getCustomRoutes() { 
    return this.customRoutes = (accountService.getCheckEmployer())?JobSeekerRoutes:EmployerRoutes; 
    } 

} 

//しかしgetCustomRoutes NGModuleに呼び出される静的メソッドである必要があります。しかし、静的にするとaccountServiceオブジェクトにアクセスできます。

(ユーザセッションに基づいて異なるルートをロードする機能を達成するためのより良い方法はあります)

答えて

0

は、残念ながら、実行時にルートを設定することは現時点ではサポートされていません。経路は、Angularアプリケーションがブートストラップされたときに指定されます。後で変更することはできません。

+0

特定の条件に基づいてモジュールをロードしたい場合は可能ですか?雇用主のセッションが設定されていると言ってください。雇用者専用のモジュールでロードする必要があります – Cliff

関連する問題