[解決済み] Angularでは、アクティブなルートをどのように決定するのですか?
質問
NOTE
ここには様々な答えがあり、そのほとんどが一度や二度は有効だったものです。実際、AngularチームがRouterを変更するたびに、何が有効かは何度も変更されてきました。 最終的になるであろうRouter 3.0バージョンは
は
Angularのルーターはこれらの解決策の多くを壊しますが、独自の非常にシンプルな解決策を提供します。RC.3の時点では、好ましい解決策は
[routerLinkActive]
のように
この答え
.
Angularアプリケーション(これを書いている時点では2.0.0-beta.0リリース)において、現在アクティブなルートが何であるかはどのように判断するのでしょうか。
Bootstrap 4 を使用するアプリに取り組んでいますが、ナビゲーションリンクやボタンを、関連するコンポーネントが
<router-output>
タグを使用します。
ボタンがクリックされたときの状態を自分で管理することもできますが、同じルートに複数のパスがある場合(たとえば、メインナビゲーションメニューとメインコンポーネントのローカルメニュー)には対応できません。
何かご提案やリンクがあれば、よろしくお願いします。 ありがとうございます。
解決方法は?
新しい
アンギュラールーター
を追加することができます。
[routerLinkActive]="['your-class-name']"
属性をすべてのリンクに追加します。
<a [routerLink]="['/home']" [routerLinkActive]="['is-active']">Home</a>
また、クラスが1つだけ必要な場合は、配列ではない簡略化された形式を使用します。
<a [routerLink]="['/home']" [routerLinkActive]="'is-active'">Home</a>
また、クラスが1つだけ必要な場合は、さらにシンプルな形式になります。
<a [routerLink]="['/home']" routerLinkActive="is-active">Home</a>
をご覧ください。
ドキュメントが乏しい
routerLinkActive
ディレクティブ
をご覧ください。(私はほとんど試行錯誤でこのことを理解しました)。
UPDATE:
routerLinkActive
ディレクティブは、現在、以下の場所にあります。
こちら
. (下のコメントで@Victor Hugo Arango A.さんに感謝します)。
関連
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] Angular/RxJS `Subscription` からいつ退会すればいいのか?
-
[解決済み] 現在のルートを取得する方法
-
[解決済み】Angularでルート変更を検出する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules