2016-08-18 8 views
0

ルーティングでは、あるコンポーネントから別のコンポーネントへのパラメータとして一部の値を渡すと、渡されたパラメータ値がブラウザのURLに追加されます...回避できる方法はありますか?例ではenter image description hereAngular2ルーティングのブラウザのURLに入力パラメータが追加されないようにするにはどうすればよいですか?

「管理者」付属のスナップショットから、私は私が行う

[![export const routes: RouterConfig = \[ 
    { path: '', component: Login }, 
    { path: 'login', component: Login }, 
    { path: 'Home/:userName', component: Home }, 
    ...HOME_ROUTER_PROVIDERS 
    } 
\] 

export const HOME_ROUTER_PROVIDERS: RouterConfig = \[ 
    { 
     path: 'Home/:userName', 
     component: Home, 
     children: \[ 

      { path: 'Dashboard1', component: Dashboard1 }, 
      { path: 'Dashboard2', component: Dashboard2 }, 
      .... 
    } 
\]][1]][1] 

マイhome.tsを次のように私のルーティングがあるhome.tsコンポーネントから

を渡していたユーザー名ですあなたは、いくつかのvariablを設定することができ、あなたのログイン・コンポーネントでそれを使用してUserServiceを作成することがパラメータ

export class Home { 
     userName: any; 
     constructor(private activatedRoute: ActivatedRoute) { 
      console.log("In constructor of Home"); 
      activatedRoute.params.subscribe(params => { 
       this.userName = params['userName'] 
      }); 
     } 
    } 
+0

ルータジョブは、ブラウザのURLバーと状態へのURLに状態を反映することです。それがURLバーに反映されていない場合は、ルータを使用してこの状態を維持しないでください。 @MadhuRanjanの回答に加えて、https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-serviceを参照してください。 –

答えて

2

を渡すnavigate.route eは、ログインしたユーザーが管理者であるかどうかを決定します。

ホームコンポーネントがルーティングされているときには、UserServiceからロールの値を読み取り、値を使用して処理することができます。

これが役立ちますように!

関連する問題