2017-03-24 9 views
2

私のAngular 2 Webアプリケーションでは、ブラウザのurlページを変更したいと思います。リダイレクトなしのURLを角2に変更

http://localhost:63000/my-page

それは、ページ・ロードをリダイレクトしませんしなければならない、とブラウザ履歴は、ページの変更を反映する必要があり

http://localhost:63000/your-page

に:たとえば、私からそれを変更したいと思います。

これはできますか?あなたのマークアップから、次の方法 のいずれかでそれを行うことができます

答えて

0

Can this be done?

YES the angular router just does that.

この

<a [routerLink]="['','your-page']"> goto </a> 

のようなリンクを入れたり、ルートに必要がある場合は、プログラム 次

constructor(private router: Router{ 
     ... 
     //some wehre 
     this.router.navigate(['','your-page']); 
    } 
ような何かを行います

モジュール上ルータモジュールをインポート

export const APP_ROUTES: Routes = [ 
    { 
    path: 'your-page', 
    component: YourPageComponent 
    }, 
    { path: 'other*', 
    component: OtherComponent}, 

]; 

@NgModule({ 

    imports: [ 
    RouterModule.forRoot(APP_ROUTES, {useHash: true}) 

    ], 
+0

あなたは(「角度/ルータ@」からインポートルータをインポート+)書く何を、私はこのエラーを取得していない「ルータ用ませプロバイダを!」 。 – brinch

+0

@brinch起動しているモジュール上のRouterModuleをインポートします。 – Mehari

+0

あなたはこれを実証するプランカを提供する可能性がありますか? – brinch

0

これは、あなたのコンポーネントまたはディレクティブコンストラクタで注入することによって、ロケーションオブジェクトを取得する必要がありますこれを行う前に、角度4

location.replaceState(path: string, query?: string): void; 

で利用可能な機能以下により達成することができます。

constructor(private location: Location) 

そして、このようにLocationクラスをインポートする -

import { Location } from '@angular/common'; 
関連する問題