2016-12-22 2 views
10

동적 구성 요소를 구현하려고합니다. 내 요구 사항은 3 가지 클래스 LayoutComponent, MenuService 및 DynamicService입니다. LayoutComponent는 MenuService의 메서드를 호출하여 기본 작업을 수행하고, 작업을 수행 한 후 MenuService의 메서드는 DynamicService의 동적 구성 요소 생성 메서드를 다시 호출합니다.Anguler2 - 처리되지 않은 약속 준수 거부 : ViewContainerRef! (동적 템플릿에서)

여기가

+0

왜 서비스 이름을 'XxxComponent'입니까? (예 :'MenuComponent' 또는'DynamicComponent'? –

+0

명확한 루키 실수 .. – Ranjan

답변

21

ViewContainerRef

Unhandled Promise rejection: No provider for ViewContainerRef! ;

만 아니라 서비스, 구성 요소 또는 지시에 주입 할 수 있습니다 다음과 같은 오류 내 Plunker입니다.

구성 요소 및 지시문은 자체가 연결된 요소의 ViewContainerRef을 가져옵니다. 어떤보기에도 서비스가 첨부되지 않습니다.

은 무엇 당신이 할 수있는 것은 구성 요소에 ViewContainerRef 서비스를 주입 한 다음 생성자에서 서비스에 ViewContainerRef를 전달하는 것입니다. 이 서비스를 주입하는 모든 서비스 또는 구성 요소는 보유하고있는 ViewContainerRef에 액세스 할 수 있습니다.

+0

코드에서 동일한 작업을 수행하고 'ViewContainerRef'를 삽입하고 액세스 할 서비스에 생성자를 전달하십시오. 또는 주입하고 있습니다. 잘못 입력 했습니까? – Ranjan

+1

구성 요소에 'ViewContainerRef'를 올바르게 주입하는 방법을 안내해 주시겠습니까 – Ranjan

+3

'constructor (viewContainerRef : ViewContainerRef, service : MyService) {service.vcRef = viewContainerRef;} –

관련 문제