2016-06-26 24 views
1

に応じて切り替え指令コンポーネントは、私がホームについて高度な検索ページを持っているとしましょう。私のAppComponent htmlで私はこれを持っています:角度2 - ページ

<view-header></view-header> 
<view-search></view-search> 
<router-outlet></router-outlet> 
<view-footer></view-footer> 

かなり簡単です。最初にヘッダーのhtmlを読み込み、次にデフォルトのhtmlを読み込んだ後にオンにします。

前述のとおり、私はページを持っています。を検索してください。明らかに、view-searchというディレクティブを表示したくないのは、アドバンス検索ページに入っているとかなり役に立たないからです。

私の質問は、私がにルーティングするときに、Angular2に表示検索のディレクティブを無効にするように指示することができます。詳細検索ページ?テンプレートに

<view-header></view-header> 

<!-- If (not in route "/search") --> 
    <view-search></view-search> 
<!-- Endif --> 

<router-outlet></router-outlet> 
<view-footer></view-footer> 
+0

現在のアクティブルートを確認するのに 'route.subscribe'を使用してください。 – AngJobs

+0

@AngJobsあなたの返事をありがとう、聞いたことがありません。確かめます。 –

+0

probsはありません。公式のドキュメントhttps://angular.io/docs/ts/latest/guide/router.html – AngJobs

答えて

0

あなたは単にngIfを使用する(または[hidden]に特異的に結合する)ことができます:


編集つまり1

は、私はそのような何かをしたい

<view-header></view-header> 
<view-search *ngIf="showViewSearch"></view-search> 
<router-outlet></router-outlet> 
<view-footer></view-footer> 
<router-outlet></router-outlet> 

現在のルートが検索されていないのであればviewSearchコンポーネントのみがレンダリングされshowViewSearch

constructor(private activatedRoute: ActivatedRoute) { 
    this.showViewSearch = activatedRoute.component !== Search 
} 

として定義します。

+0

あなたの助けをありがとう、私が言ったようにしようとしたが、私は私のプロジェクト全体で見つけられなかったActivatedRouteクラス。たぶんそれは別のバージョンですか?私のバージョンは - 'angular-cli:1.0.0-beta.2-mobile.4' –

+0

どのルータのバージョンを使用していますか? ActivatedRouteは、バージョン3.xの '@ angle/route'によってエクスポートされます。 – dfsq

+0

"@ angle/router": "2.0.0-rc.1" 3.xにアップグレードする必要がありますか? –