2017-09-06 17 views
1

私のアプリは、ユーザが以前に保存した設定を基にしてリストから項目を選択して、ビューを更新して選択した機能/ページを表示する開始ページから構成されます。動的に読み込まれたコンポーネントを含むAngular2アプリのデザイン決定

これらのページには、それぞれ異なるサブコンポーネントが含まれているという意味で異なる構成があります。

新しいニーズが表現されたときに、特定の構成(サブコンポーネントの組み合わせ)に対して新しいコンポーネントを作成し、リストアイテムがそのコンポーネントを指し示すようにすることができましたが、このアプローチでは多くの手作業が必要になる可能性があります。私の意見では、リスト項目モデル(backend.serviceから来て、ユーザーの好みに基づいている)は、サブコンポーネントのIDを持つ内部配列を保持しているので、リスト内の項目が選択される。

すべてのチュートリアルとガイドでは、定義済みのタイプのコンポーネントと定義済みのコンポーネントの読み込み方法のみを示していますが、時には3つのコンポーネントをロードする必要があり、テンプレートに?どうすれば動的に作成されたサブコンポーネントのセットを保持するmain.component.htmlを動的に変更して正しいテンプレートを読み込むことができますか?これはこの問題の良い解決策であると思いますか?

+0

読んで[ここでは、角度の動的コンポーネントについて知る必要がある](https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components -in-angular-ac1e96167f9e) –

答えて

0

私は、私たちがやってしまった私たちは、同じニーズ

を持ってプロジェクトに取り組むために起こる、我々はblocks-provider呼ぶコンポーネントを作成しました。コンポーネントのリストを保持しているサービス(識別子とクラスを使用して)で作業することで、コンポーネントを動的にロードする責任があります。このリストは手動で管理する必要がありますが、あまり効果がありません。

これは、コンポーネントを任意の順序でレンダリングするのに役立ちます。 blocks-providerid@Inputとしているので、コンポーネントのセレクタを与え、上で説明したサービスからコンポーネントをフェッチします。それが完了すると、@Inputが割り当てられ、最終的にはコンポーネントがng-templateViewChildにレンダリングされます。

これは、あなたが代わりにその構造を持っているときに非常に詳細here

に説明されている簡単な部分であるあなたでしblocks-provider

との組み合わせで、ユーザーの好みでバックエンドからデータをループTLDR enter image description here

+0

ありがとう!私は明日これを見て、私が正しく理解しているかどうかを見ていきます。 – Kapalua

+0

あなたの解決策を読んでいる間、これはうまくいくと思いますし、私の意見では素晴らしい解決策ですが、現時点で私の解決策としては必要ではないことに気付きました。それは本当にそれから多くを得ることなく、アプリがなくても私のアプリを稼働させるためのより多くの設定とより多くのラッパーコードを生成します。私は、後でこれに戻ります。アプリが準備ができているときです! – Kapalua

関連する問題