2016-09-18 9 views
5

私はng2にはに適用できる工場を解決できるComponentFactoryResolverがあることを知っています。ディレクティブをプログラムでインスタンス化して適用する方法は?

しかし、ディレクティブに類似したものはありますか?コンポーネントをインスタンス化し、コンポーネントの投影されたコンテンツに適用する方法

+0

実際にはわかりませんが、ディレクティブはコンポーネントと非常によく似ていますが、ディレクティブには機能しないコンポーネントファクトリを使用していますか? – poke

+0

これは機能しません。モジュールのentryComponentsに追加する必要があります(entryComponentsはディレクティブデコレータ用に存在しないため)。 – lqbweb

答えて

2

いいえ、ディレクティブを動的に追加または削除することはできません。これらは、コンポーネントテンプレートに静的に追加されたHTMLにのみ適用されます。

あなたができることは、何かをするように通知するためにディレクティブにパラメータ(@Input())を渡してディレクティブを有効/無効にすることです。

+0

TemplateRefを持っていれば、jQueryなどで手作業で修正することができるはずです。そうすれば、正しく投射されたら別の指示詞をインスタンス化することもできます。 – lqbweb

+1

私はそうは思わない。 'TemplateRef'は決してDOMに追加されません。 Angularでは内部でのみ使用されるため、jQueryで使用することはできません。一部のディレクティブセレクタと一致する場合でも、HTMLを動的に追加すると、ディレクティブをインスタンス化しません。 –

+0

基本的には、実際にng2には実際には他の方法を適用する指示を実際に作成する方法はありませんか?これは私をナットにしている。私はビューを投影する既存のコンポーネントを他のコンポーネントにラップすることはできません。単にサポートされていませんか? – lqbweb

関連する問題