2016-10-24 3 views
4

구조 지시문을 Angular2에 구현했습니다. 문서에서 TemplateRef을 삽입하여 템플릿 요소를 가져와 ViewContainerRef을 삽입해야한다는 것을 알았습니다.각도 2는 TemplateRef를 사용하여 ViewContainerRef 사용법을 이해합니다.

class TestDirective { 
    constructor(private templateRef : TemplateRef<any>, private viewContainer : ViewContainerRef) { 
    // this.viewContainer.createEmbeddedView(this.templateRef); 
    } 
} 

<template [ngIf]="condition"> 
    <p> 
    Our heroes are true! 
    </p> 
</template> 

이 경우 어떤 요소가 ViewContainerRef인지 이해할 수 없습니까?

답변

2

ViewContainerRef을 삽입하면이 요소는 TestDirective의 호스트 요소입니다. @ViewChild(templateVarNameOrType) 또는 @ContentChild(templateVarNameOrType)을 사용하는 경우 요소는 templateVarNameOrType과 일치합니다.

this.viewContainer.createEmbeddedView() 또는 this.viewContainer.createComponent()은 요소 또는 구성 요소가 요소의 형제로서 지정되며, 자식만큼 기대되는 것은 아닙니다.

+1

예를 통해 답변을 확장 할 수 있습니다. 많은 사람들이이 질문에 어려움을 겪고 있습니다. 감사. –

+0

정확하게 무엇에 관한 예? 어떤 부분이 불분명합니까? –

+0

@ViewChild (templateVarNameOrType) 또는 @ContentChild (templateVarNameOrType) 및 this.viewContainer.createEmbeddedView() 코드 –

관련 문제