変更コンポーネントのスタイルを - routerLink
年代、私は変更を元に戻すことはできませんが(見えてくる/コンポーネントが初期化されたときに、CSSのみ/ロード回適用されるように思えます)
私が他の何かを言う前に、これは非常にお勧めです。コンポーネントはの自己完結型エンティティであり、プロジェクト全体または他のプロジェクトでも再利用できます。 CSSを介してのみシステム内の他のものを変更するコンポーネントを作成することで、コードから直ちに見るのが難しいタイトなカップリングが作成され、デバッグが困難なバグやその他のエラーが発生します。
あなたapp-nav
変更したい場合は(あなたが後でそれを参照として、またはmain-nav
を、私はこれは私のミスであるかどうかわからないんだけど)現在のルートに基づいて、あなたはActivatedRoute
を注入し、それを照会することによって、そうする必要があります必要なヘッダーの特定のバージョンを特定します。
もう1つの方法として、ルータのアウトレットの下にあるヘッダーを移動するだけで、ページ全体にあるコンポーネントからいつでもアクセスすることができます。
変更は一度のみ適用され、私はrouterLinkの
を使用して他のルートに行けばスタイルは、あなたが実際のコンポーネント、の必要はありませんを訪問したときにのみDOMに注入されているので、これは、期待されています彼らはそれが必要となる前に現れます。 Angularでは、コンポーネントに対して定義したスタイルが、そのコンポーネントののみを使用すると想定しています。あなたはこの経験則を破ります。
あなたの観察が正しいか -
私は変更を元に戻すことはできませんが(見えてくる/コンポーネントが初期化されたときに、CSSのみ/ロード回適用されるように思えます)。
この動機は、基本的に、すべてのコンポーネントで使用されるapp-navコンポーネントのいくつかのスタイルルールが欲しいということではありませんでした。ナビゲーション不透明度:ホームコンポーネントが表示されているときの0.5と不透明度:他のすべてのコンポーネントが表示されている場合は1。確かにこれは共通の問題であり、私はそれにアプローチするより良い方法があるかどうか疑問に思っていました。 – joe
「別のオプションは単にルータのアウトレットの下のヘッダを移動することです」と言いますと、をにネストするだけでよいですか?私はちょうどこれをテストし、私のhome.component.cssのapp-navコンポーネントのクラスをターゲットとするCSSルールを追加しようとしましたが、うまくいきませんでした –
joe