Angular 8 を使用して単純なダッシュボード コンポーネントを構築しようとしています。ダッシュボードに含まれる各アイテムは何でもかまいません。2 つの異なるコンポーネントを作成しました。1 つはダッシュボード自体 (メイン コンテナー) 用、もう 1 つはダッシュボード内の領域を識別するため (これはウィジェット コンポーネント リストを受け取ります)。
現時点で私の解決策は非常に簡単です。基本的に、ng-contentを使用して、トランスクルードされた要素をメイン コンポーネントに投影します。私はあなたにいくつかのコードを示します
一般的なダッシュボード コンテナー:
<my-dashboard>
<my-area widgets="[]"></my-area>
<my-area widgets="[]"></my-area>
<my-area widgets="[]"></my-area>
</my-dashboard>
my-dashboardコンポーネントは単純に次のとおりです。
<ng-content></ng-content>
このアプローチを使用すると、すべてが機能しますが、たとえばスロットが正確にわかっている場合のように、投影されたコンポーネントの単一のインスタンスにアクセスすることはできません。たとえば、dahboard コンポーネントから特定のコンポーネントの情報を取得したい場合、これは不可能です。これは正しいアプローチですか?ドキュメントのコンテンツ プロジェクションに関する情報はあまり見つかりませんでした。