2016-09-23 11 views
8

角2のファイナルがリリースされました。2つ以上のアクティブモジュールが角2にあります

アクションでルータの良い例は、ここで見つけることができます:http://plnkr.co/edit/mXSjnUtN7CM6ZqtOicE2?p=preview

上に新しいものでロード中にDOMにレンダリングされた(しかし、隠された)現在のモジュールを維持するための何らかのメカニズムがあります場合、私は思っていました?ここでのユースケースは、おそらくユーザーがAdmin型モジュールを使用していて、何らかの資産(おそらくユーザー)を作成する必要があることを認識しているため、ユーザーモジュールにジャンプして作成することができます。管理モジュール内のどこに移動したかを確認します。

このシナリオでは、ユーザーはAdminモジュールの深くリンクされたセクションに存在する可能性があり、自分が行っていたことを失うのは非常に奇妙な動作になります。

これは可能ですか?私が今まで行ったことから、<router-outlet>タグで提示されたモジュールがDOMから完全にダンプされるのが分かりました。

ありがとうございます!

答えて

2

現在、ルータによって追加されたコンポーネントは、ルートが変更されたときに破棄されます。 This is planned to be made configurable eventually

コンポーネント自体ではなく、共有サービス(ではなく、)でデータ(モデル)を保持すると、ユーザーは以前のルートに戻るときに元のビューに戻ります。

サービスはルータによって削除されないコンポーネントで提供する必要があります。遅延ロードされていない@NgModule()のルートコンポーネントが動作します。

+0

サービスにキャッシュされたデータを保持することは、この種の問題の部分的な解決に過ぎません。ユーザーが深くリンクされた領域にあるか、複雑な構成をしている場合、サービスに実際にキャッシュすることはできません。これが設定可能であると言われている文書へのリンクはありますか?私はそれを見たいと思っています:) – Askanison4

+1

https://github.com/angular/angular/issues/7757#issuecomment-236737846 私はなぜサービスがいくつかのデータへの参照を保持することができないと想像することはできませんコンポーネントが可能になります。 –

+0

私は、コンポーネント間をホッピングするのではなく、NgModuleを切り替える行に沿ってもっと考えています。アイデアは、ユーザーがいくつかのデータを入力してから、別のモジュール領域にホップするモジュール - >コンポーネント - >コンポーネント - >コンポーネントシナリオを持つことができるということです。しかし、このリンクをありがとう – Askanison4

関連する問題