問題タブ [angular2-ngcontent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - Angular 2: コンポーネントが動的に作成された後に Projectable Nodes を追加する方法
コンポーネントのリストからタブを動的に作成できるタブ ビューを作成しています。また、これらのコンポーネントが DOM に追加された後、ボタンで追加できるようにしたいと考えています。
ユーザー yurzui の助けのおかげで、コンポーネントの初期作成を機能させることができました (こちらを参照)。課題は、Tabs コンポーネントが作成されると、動的に作成されたタブを追加するために投影可能なノード リストにアクセスできないことです。
これがプランクです:
タブが次のように追加されるたびに、おそらくタブコンポーネントを再作成できることはわかっています。
これらのコンポーネントは非常に複雑になる可能性があり、ロード時間が不合理になる可能性があるため、これは避けたいと思います。
コンポーネントが作成された直後に投影可能なノードにアクセスするのは、API に尋ねるのは難しいかもしれません。そのことを念頭に置いて、この既にインスタンス化された TabsRef にタブを追加するのに役立つメソッドが ComponentRef にあるかどうかを調べました。
これは近いです:
残念ながら、タブが定義されていないため、これは機能しません。私が見逃している別のアプローチがあれば、私はそれを受け入れます。または、これが不可能な場合は、それも知りたいです。
angular - ng-content 使用時に内部コンポーネントを削除する方法
これを書くことができるように、ポップアップメニューを除外しようとしています:
次の HTMLを持つpanel-menu
コンポーネントがあります。
そしてpanel-menu-item
このHTMLで:
問題は、結果の DOM に と のpanel-menu-item
間に がul
ありli
、サードパーティの CSS が壊れることです。
子供自身ではなく、選択した子供のコンテンツだけを投影する方法はありますか?
This answerli
は、コンポーネントの代わりに属性を使用することを提案していますが、実装が漏れています。のユーザーは、panel-menu
メニュー項目がどの要素として実装されているかを知る必要はありません。