9

Tôi muốn hiển thị mẫu khác trong thành phần của mình. Chỉ một người sẽ hiển thị. Nếu hasURLtrue, tôi muốn hiển thị số <a></a>. Nếu hasURLfalse, tôi muốn hiển thị số <button></button>.Làm thế nào để sử dụng nhiều ng-nội dung trong cùng một thành phần trong Angular 2?

Sự cố nếu hasURL là sai, nút hiển thị thành phần, nhưng nội dung ng trống. Bởi vì nó đã được đọc trong lần đầu tiên "a></a>

Có cách nào để giải quyết mà lòng?

 <a class="bouton" href="{{ href }}" *ngIf="hasURL"> 
      <ng-content> 
      </ng-content> 
     </a> 

     <button class="bouton" *ngIf="!hasURL"> 
      <ng-content> 
      </ng-content>  
     </button> 

Cảm ơn!

Trả lời

11

Bạn có thể quấn ng-content trong ng-template và sử dụng ngTemplateOutlet

<a class="bouton" href="{{ href }}" *ngIf="hasURL"> 
    <ng-container *ngTemplateOutlet="contentTpl"></ng-container> 
</a> 

<button class="bouton" *ngIf="!hasURL"> 
    <ng-container *ngTemplateOutlet="contentTpl"></ng-container> 
</button> 
<ng-template #contentTpl><ng-content></ng-content></ng-template> 

Plunker Example

cũng Xem

+0

Cảm ơn! Nó hoạt động tuyệt vời. Tôi vẫn còn với Angular 2 không Angular 4, vì vậy tôi đã phải sử dụng '