2017-11-16 13 views
0

私はangular4を初めて使っています。私はルートをしようとしています。私の問題は動的なappNameが来るコンポーネントです。次のようになります。角4ルータ ':any/component'

localhost:4200/dynamic-name/login. 

ここでは、コンポーネントに当たる前に一部のサービスに存在するダイナミックな名前を確認する必要があります。つまり、ページに行く前にルータモジュールで確認する必要があります。存在する場合、ルータはログインコンポーネントにアクセスできます。それ以外の場合は、デフォルトのコンポーネントにリダイレクトします。そして、もし私がこのダイナミックな名前をルートリンクの上に残しておく必要があります。

私には誰もガイドしてください。

+0

角度ルータガードの検索 –

答えて

0

動的にAPP_BASE_HREFを設定できます。

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { APP_BASE_HREF, Location } from '@angular/common'; 

import { AppComponent } from './'; 
import { getBaseLocation } from './service/baselocation.service'; 

@NgModule({ 
    declarations: [AppComponent], 
    imports: [ 
    BrowserModule, 
    HttpModule, 
    ], 
    bootstrap: [AppComponent], 
    providers: [ 
    appRoutingProviders, 
    { 
     provide: APP_BASE_HREF, 
     useFactory: getBaseLocation 
    }, 
    ] 
}) 
export class AppModule { } 

そして./service/baselocation.serviceで、

export function getBaseLocation() { 
    var basePath = "your dynamical base path" //add logic to get your base path 
    return '/' + basePath; 
} 

そして、もう一つの方法は、動的にリダイレクトするAuthGuardを使用し、その後、ユーザーがヒットする "/ LOGN" 路線をさせることですログインルート。

+0

ルート上に動的名を保持するだけですか? –

+0

ルートに行く前に動的名を確認する必要があります –

+0

上記の答えに私の編集を見てください –

関連する問題