2016-06-25 10 views
0

私はオプションを選ぶことができるサイドメニューと、このオプションのコンテンツが表示される右側のエリアを持っているとしましょう。Angular2(RC3)の現在のルートに基づいて州を設定します

私はそうのようなrouterLinkディレクティブのシリーズを使用して、サイドメニューを構築したいと思います。また

@Component({ 
selector: 'side-menu', 
template: ` 
    <div> 
     <ul> 
      <li><a [routerLink]="['/option1']">Option 1</a></li> 
      <li><a [routerLink]="['/option2']">Option 2</a></li> 
      <li><a [routerLink]="['/option3']">Option 3</a></li> 
     </ul> 
    </div> 
` 
}) 

を、私は、対応する<li>は、たとえば、class="active"を使用して、強調表示することにしたいと思います。それ、どうやったら出来るの?

もちろん、click()にはイベントハンドラが追加されていますが、ここではちょうどrouterLinkを使用していますが、ここでイベントを処理するよりもはるかにクリーンです。

私はplnkrを提供したいと思いますが、@angular/routerからインポートすると現在のAngular2テンプレートが壊れているようですが、これはルータバンドルがnpmのRC3にないためです。

答えて

2

対応する<li>を強調表示する場合は、たとえばclass="active"を使用します。それ、どうやったら出来るの?我々はangular2の新しいルータとangular2のルータchnages continueslyのでASAIKを知っているよう

これはあなたのrouterLinkrouterLinkActiveディレクティブを使用して非常に簡単です。例えば

ここ
<a [routerLinkActive]="['active']" [routerLink]="['/Demo']"> 
    Hello Link 
</a> 

Working Example

も多くsimilerの質問があるplunker取り組んでいますが

更新

時にはそれが誤り

を投げるが未定義 のプロパティ 'pathsWithParams' を読み取ることができませんので、あなたはrouterLinkActive

[routerLinkActiveOptions]="{exact:true}" 

こちらを参照して、同様にこれを定義する必要があります

+0

パンくずリストの作成に役立てるには、現在のパスを購読できますか? – freethebees

+0

申し訳ありませんが分かりません –

関連する問題