私は2つのコンポーネント、LinkGroupとLinkItemを持っています。角4:親コンポーネント=>子コンポーネントをサブスクライブするrouterLinkActive change
LinkItemのテンプレートはシンプルです:例えば場合
<link-group title="Users">
<link-item title="..." link="...">
<link-item title="..." link="...">
<link-item title="..." link="...">
</link-group>
<link-group title="Servers">
<link-item title="Server1" link="...">
<link-item title="Server2" link="...">
<link-item title="Server3" link="...">
</link-group>
:
<a routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"
[routerLink]="link"> {{ title }}
</a>
コンポーネントは、このように使用されていますServer2がクリックされましたrouterLinkActiveの変更をキャッチして、それを親リンクグループコンポーネントに送信して、タイトルの( "Servers")スタイルを変更することができます( 'font-weight:bold')。
私はhttps://angular.io/api/router/RouterLinkActiveのディレクティブページを見てきました。
私はAngular4をかなり新しくしているので、私は提案をすることができます。 'RouterLinkActive'ディレクティブを拡張し、ngOnChangesを上書きする必要がありますか? (方法は?)
さらに簡単な方法がありますか?
何か助けていただければ幸いです。
編集:私は、リンク・グループのテンプレートを追加している必要があります。
<div routerLinkActive="active">{{ title }}
<ng-content></ng-content>
</div>
すべてのリンク項目の部品(およびそのrouterLinkディレクティブと実際のリンクが)もちろん
の内側にあることに注意してくださいCSSは存在します:
div.active { font-weight: bold }
注:コンポーネントをまったく使用しないときは、純粋なhtml + routerLinkディレクティブで動作します。
私はしましたOPを編集しました。問題はリンクが内部にあることです。 – MehmetGunacti