2016-09-18 2 views
5

나는 ng2에서 우리가 ViewContainerRef에 적용 할 수있는 공장을 해결할 수있는 ComponentFactoryResolver을 가지고 있음을 알고 있습니다.지시어를 프로그래밍 방식으로 인스턴스화하고 적용하는 방법은 무엇입니까?

그러나 지시어와 비슷한 것이 있습니까? 컴포넌트를 인스턴스화하고 컴포넌트의 투영 된 컨텐츠에 적용하는 방법?

+0

실제로 이것에 대해서는 전혀 알지 못하지만 지시어가 구성 요소와 매우 유사하다는 것을 알았 으면 지시문에 사용할 수없는 구성 요소 팩토리를 사용합니까? – poke

+0

그것이 작동하지 않는다면 모듈의 entryComponents에 추가되어야합니다 (지시어 데코레이터에 대해서는 entryComponents가 존재하지 않으므로). – lqbweb

답변

2

아니요. 지시문을 동적으로 추가하거나 제거 할 수 없습니다. HTML에만 적용되며 구성 요소 템플리트에 정적으로 추가됩니다.

매개 변수 (@Input())를 지시문에 전달하여 지시문을 사용/사용하지 않도록 설정할 수 있습니다.

+0

그런 다음 TemplateRef가 있으면 수동으로 jQuery 또는 다른 것으로 수동으로 수정하여 올바른 투영법을 구현할 때 다른 지시문을 인스턴스화 할 수 있어야합니다. – lqbweb

+1

나는 그렇게 생각하지 않는다. 'TemplateRef'는 결코 DOM에 추가되지 않습니다. 내부적으로 Angular에서만 사용되므로 jQuery와 함께 사용할 수 없습니다. 일부 HTML을 동적으로 추가하면 일부 지시어 선택기와 일치하더라도 여전히 지시문을 인스턴스화하지 않습니다. –

+0

기본적으로 ng2에는 실제로 다른 방법을 적용하는 지시어를 만드는 방법이 없습니다. 이건 내 견과를 몰고있어. 프로젝트 뷰가있는 기존 구성 요소를 다른 구성 요소로 래핑 할 수 없습니다. 단순히 지원되지 않습니까? – lqbweb

관련 문제