2016-10-09 3 views
1

isModal:boolean에 따라 ng-content을 둘러싸는 ContainerComponent을 만들고 싶습니다. 내 접근법은 마지막 <ng-content> 태그 만 인식하기 때문에 작동하지 않습니다. 따라서 모달 및 넌 모달로 TemplateUrl을 분리하고 싶습니다. 나는 가능합니까? 그렇지 않다면이 일을하는 가장 깨끗한 방법은 무엇일까요?Angular2.0.0 - 동적으로 템플릿 URL 설정

이 내 비 작동 코드 : 난 당신이 ngTemplateOutlet 지시와 그것을 달성 할 수 있다고 생각

<div *ngIf="isModal" class="modal in"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close" (click) = "close()"> 
      <span aria-hidden="true">&times;</span> 
     </button> 
       <h4 class="modal-title">{{title}}</h4> 
      </div> 
      <div class="modal-body"> 
       <ng-content></ng-content> 
      </div> 
     </div> 
     <!-- /.modal-content --> 
    </div> 
    <!-- /.modal-dialog --> 
</div> 
<!-- /.modal --> 
<div *ngIf="!isModal"> 
    <ng-content></ng-content> 
</div> 
+0

그것은 내 질문에 대답하지 않습니다 . 나는 내 문제를 말했고 어쩌면 하나 이상의 해결책을 가질 수있다. 그의 문제는 너무 구체적이어서 3000 줄이 답합니다. 내 문제는 간단하고 아마도 템플릿 레벨에서 해결할 수 있습니다 –

답변

2

: 여기

<div *ngIf="isModal" class="modal in"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" 
         aria-label="Close" (click) = "close()"> 
        <span aria-hidden="true">&times;</span> 
       </button> 
       <h4 class="modal-title">{{title}}</h4> 
      </div> 
      <div class="modal-body"> 
       <template [ngTemplateOutlet]="tmpl"></template> 
      </div> 
     </div> 
     <!-- /.modal-content --> 
    </div> 
    <!-- /.modal-dialog --> 
</div> 
<!-- /.modal --> 
<div *ngIf="!isModal"> 
    <template [ngTemplateOutlet]="tmpl"></template> 
</div> 

<template #tmpl> 
    <ng-content></ng-content> 
</template> 

이야 plunker

+0

대단히 감사합니다! 이것은 멋지고 우아하게 작동합니다! –