2016-09-29 16 views
10

2つのルートDashboardProfileがあるとします。 DashboardにはGoogle spreadsheetのような動的タブ機能があります。私はDashboardのタブを作成するいくつかの相互作用(チャートの作成、いくつかのデータの視覚化)を行いたいと思います。現在、ProfileにルーティングしてDashboardに戻った場合、その前のタブをDashboardに表示したいと考えています。つまり、私はクライアント側で状態を維持したいと考えています。コンポーネント間のルーティング中にAFAIKを実行すると、コンポーネントが再作成されます。角度2ルーティングを使用しているときにアプリケーションのようなスプレッドシートを作成することは可能ですか?自分のアプリケーションでLazyLoading機能を使用する必要があるため、ルーティングを使用する必要があります。角度2でルーティングするときにコンポーネントの再作成をしたい

だから、どのようなアイデアが必要ですか?私は角度2を初めて使用しています。

+0

も参照してください。私はこのブログを読んだことがありますが、自分が求める高度なルーティングを実装しようとしていません。 https://vsavkin.com/angular-2-router-d9e30599f9ea#.2o8b488po – DNRN

+0

私はブログとvsavkinの新しい本を読んだ。しかし、それは私が概念を理解するにはあまりにも複雑です。だからこそ私はより良い理解を求めています:/ –

答えて

12

現在、コンポーネントは再ルーティングされます同じルートに留まっている間にルートパラメータのみが変更された場合。

ルートが変更された場合、新しいルートで同じコンポーネントが追加されると、コンポーネントが再作成されます。

推奨される回避策は、ルート変更中にアクティブなままである共有サービスにモデルを保存し、このサービスのデータを使用してコンポーネントの以前の状態を復元することです。

ルーターでカスタム再利用戦略をサポートする計画がありますが、これが利用可能になる予定ではありません。カスタムの再利用戦略の

更新

サポートがAngular2に追加されました。

は、私はそれがルーティングから可能だと思う

+0

私の要件に応じて、私は 'Dashboard'の下に複数のタブを作成する必要があります(Googleスプレッドシートのような100個のタブかもしれません)。あなたは 'RouterState'でいくつかの光を照らすことができますか? –

+0

私は 'RouterState'が関連しているとは思わない。 AUXルートを見て、現在のルートから 'Profile'を表示するのではなく、それをモーダルまたは同様のものとして表示することができます。 Auxルートのサポートはまだ私には少ししか限定されていませんでした。 –

+0

私は 'Profile'を例として挙げました:/私のアプリケーションは、Googleのスプレッドシートのようなタブのインタラクションを構築し、それらのタブを' Dashboard'に保存します。そして私はLazyLoadingが必要です。私の要件は複雑で、初期のアーキテクチャーに問題があります。( –

関連する問題