2017-08-29 6 views
4

私は普通の角度4のアプリを持っています。私は、ページ間をナビゲートしてURLを解釈するために、Router、ActivatedRoute.params.subscribe、[routerLink]などを使用します。Page Structure/RoutesをAngular 4で暗号化する方法は?

これは、多くの異なる.ts-ファイルにURLフラグメントがあるため、私は多くの "マジックストリング"を飛ばしているという事実につながります。彼らは一致するので、もちろんそれは動作しますが、それは私に絡み合っているようです。ここでは、ランダムな例である:私が持っていた

<a [routerLink]="['/foo']">Home</a> <a [routerLink]="['/foo/item', 1]">Item 1</a> <a [routerLink]="['/foo/item', 2]">Item 2</a>

ひとつのアイデアは、コンポーネントのURLの構築を行い、したがって、URL構造を知っているサービスを構築することです。これは私が持っていたただ一つのアイデアですが、私は角で経験したことではないし、多分 "魔法の弦"が何らかの理由で行く方法です。

コンポーネントからURL構造を削除することをお勧めしますか?

+0

私は、少なくともHTMLテンプレートの外にURLを得るでしょうコンポーネント –

+0

@MaximKoretskyi、それらを構成します。アイデアのためのThx! – clemens

+0

あなたは歓迎ですが、完全なルートマップを保持するサービスを実装し、現在のコンポーネントルートに基づいて可能なルートを調べることができます。種類は現在のルート 'service.get(currentRoute)'をとり、可能なルートのリストとテンプレートでそれらを使用することができます –

答えて

2

これは私がコンポーネントからルータの依存関係を使用していて、毎回手動で各宛先に手動でナビゲートしている理由です。ルートが変更された場合は、いくつかの文字列を変更する必要がありますが、私はそれで大丈夫です。

私は自分のアプリケーションのルートを表示するナビゲーションコンポーネントも作成しました。私は多くのメタデータと権利管理でアプリケーションルートを動的に構築しようとしましたが、私は最終的には遅延ロードの可能性を無くしました。

私にとっては、1つのルータ設定を消費するナビゲーションコンポーネントを作成するのが最も良い方法です(ニーズにもよりますが)。 https://github.com/akveo/ng2-admin/blob/master/src/app/pages/pages.menu.ts

とデモアプリケーション::ここに は、私が話しているものですhttps://github.com/akveo/ng2-admin

+0

ええ、それはまた興味深い考えです –

関連する問題