2016-11-28 4 views
3

をロードしません:問題:機能モジュールは、私は、このナビゲーション構造を再現しようとしています、私の角度2のアプリでは、適切な場所に

enter image description here

私は一つの大きなルータのコンセントを持っていますユーザーのログイン時に私のマーケティングウェブサイトまたはアプリケーションをロードしているルートアプリケーションコンポーネント ユーザーがログインすると、MyComponent(マルーン)が赤いルータのアウトレットにロードされ、ナビゲーションがありますバー(MyHeader、黒と灰色)、および独自のルータコンセント(青色)。ナビゲーションバーで[ホーム]をクリックすると、ブルールータのコンセントにダッシュボードコンポーネントが読み込まれ、すべてが正常に表示されます。しかし、「Benefits」リンクをクリックすると、から青色のルータ出口にBenefitsComponent(オレンジ色と黄色)がロードされます。代わりにAppComponentの赤いルータ/アウトレットに、MyComponentのナビゲーションバーが表示されなくなるので、それを赤いルータのコンセントにロードするように見えます。

私はsimplified version of my project on Githubを作成しました。

私には明らかに何かがありません。誰が私が何が起こっているのか理解するのを助けることができますか?

EDIT:ちょっとした文脈を追加するだけで、恩恵を受けるモジュールを怠けているものからルーティング構造を変更しようとしています。もともと私はすべてのモジュールを読み込むのが怠惰でしたが、利点セクションには私のアプリケーションのログインしたセクションを読み込まなければならないので、ここではあまり役に立ちません。もともと、私は遅延ロードでこれを持っていた:

{:怠惰なロードされた私は、モジュールをロードするための追加的なラインを持っていたmy-routing.module.ts

  • だったので、私はBenefitsModuleの言及がなかったmy.module.ts

    • パス: '恩恵'、loadChildren: 'アプリ/私/メリット/ benefits.module#BenefitsModule'、canActivateChild:[AuthGuard]}

    • benefits-routing.module.tsに私はbenefits Pの言及がなかったですathが存在して以来my-routing.module.ts

    これは完全に機能しました。あなたはthe lazy-loading branch of my repositoryであなた自身のために見ることができます。だから私は自分のナビゲーション構造を失うことなく、この怠惰なローディング状況から熱心なローディング状況に移行する方法を私の質問と思います。

    EDIT 2:各ルータのコンセントでactivateイベントを使用すると、遅延ロードを使用するとMy BenefitsコンポーネントがMyComponentのルータコンセントにロードされますが、遅延読み込みなしでルートAppComponentルータ出口。

  • 答えて

    3

    私はあなたの問題を調査しました。あなたがBenefitsComponentMyComponentの内部にロードしたかったということです。しかし、それが子どもでなければ、どうすればいいのですか?MyComponent?したがって、遅延ロード時に行うように、子リストに追加する必要があることを修正するためです。唯一のことは、ここでは怠惰な読み込みをしたくないということです。しかし、ルータのRC6(そしてリリースも)から、モジュールを返す関数を渡すことができます。このため、レイジーロードへの切り替えも非常に簡単です。インポートを削除し、文字列リテラルを使用してモジュールをポイントするだけです。

    GitHubリポジトリにPRを追加して、どのように動作するかを示しました。 https://github.com/sarbogast/ng2-routing-example/pull/1

    関連する問題