2016-03-31 8 views
0

私は補助ルートを使用して、現在のルートに応じてサイドバーにさまざまなコンテンツを表示しようとしています。角度2の補助ルートはナビゲート後にURLに残ります

補助ルートは、ナビゲートした後に(URLとコンテンツの両方に)残っているという問題があります。

HTML:

<router-outlet></router-outlet> 
<router-outlet name="sidebar"></router-outlet> 

RouteConfig:

@RouteConfig([ 
    {path: '/', name: 'Home', component: Home, useAsDefault: true}, 
    {path: '/leadslist', name: 'LeadsList', component: LeadsList}, 
    {aux:'/sidebar', name: 'Sidebar', component: Sidebar} 
]) 

ナビゲーションバーのリンク:

<a [routerLink]="['Home']">Home</a>  
<a [routerLink]="['LeadsList', ['Sidebar']]">Leads list</a> 

現在の行動:ホームページから

  1. は、私が「リストをリード」リンクをクリックしてください。
  2. "/ leadslist(サイドバー)"ルートにリダイレクトされ、サイドバーのコンテンツがルータのアウトレットに正しくロードされています。これまでのすべての良い。
  3. "ホーム"リンクをクリックして "/"に戻すと、URLは代わりに "/(サイドバー)"になり、サイドページがロードされた状態になります(不要な動作です)。

私の質問:補助ルート "タギング"なしのルートに移動するにはどうすればよいですか?

+0

http://stackoverflow.com/questions/36220266/click-to-remove-deactivate-auxiliary-route-in-angular-2(また無回答)https://github.com/angularもご覧ください。 /角度/問題/ 5122 –

答えて

2

現在(私見)これはAngular2ルータに良く処理することができますが、何をする必要があるnullにごauxコンセントを設定し、あなたが戻って行きたいURLprimaryコンセントを指しています。

これは、primaryがangular2用に予約済みのデフォルトのコンセントであるために機能します。私たちは、電子メールの閲覧や返信を構成し、上記のルートで/inbox/123131$asd(compose:reply)

には、以下のルートを考えてみましょう。だから、私たちがこれを送るときに、ユーザがメインビュー、すなわち受信箱に送り返されることを望むかもしれない。次に、あなたのrouterLinkは、以下のように見える必要があります:

<a [routerLink]="['',{outlets: {compose: null, primary: '/inbox'}}]" >Close</a>

が、これはAngular2ルータの第三の書き換えに変更になるかもしれないと警戒してください。

関連する問題