Vì vậy, đây là thỏa thuận. Tôi có một thành phần thats rất tốt bằng văn bản và được sử dụng ở rất nhiều nơi. Bây giờ tôi cần phải sử dụng cùng một thành phần, nhưng muốn một mẫu khác được hiển thị, dựa trên một điều kiện.Một thành phần nhiều mẫu dựa trên điều kiện
Tôi đã thử rất nhiều.
1) Cố gắng sử dụng nhiều trang trí thành phần - không có may mắn
2) Cố gắng mức bội số của trừu tượng, nơi tôi chỉ kết thúc việc tạo nhiều thành phần - xấu ý tưởng
3) theo nghĩa đen có thể sao chép toàn bộ thành phần, và chỉ cần thay đổi selector và mẫu - xấu ý tưởng
4) Hiện nay tôi đã cố gắng này:
<div *ngIf="!isWizard">
<ul class="nav" role="tablist">
<ng-content select="tab-link"></ng-content>
</ul>
<ng-content select="tab-content"></ng-content>
</div>
<div *ngIf="isWizard">
<nav class="nav-panel sidenav">
<ng-content select=".wizard-title"></ng-content>
<ul class="nav" role="tablist">
<ng-content select="tab-link"></ng-content>
</ul>
</nav>
<main class="settings-panel content-area">
<ng-content select="tab-content"></ng-content>
</main>
</div>
tôi đặt isWizard thuộc tính là true/false. Bây giờ vấn đề là, ng-content chỉ chạy một lần. Vì vậy, khi isWizard là true, mặc dù khối div được hiển thị, ng-content không chạy (vì nó chạy trong khối trên).
5) Thay vì sử dụng ngNếu tôi cũng đã thử ngSwitch - không hoạt động
Tôi đang tuyệt vọng ngay bây giờ. Vui lòng trợ giúp :)
Bạn đang sử dụng phiên bản Angular2 nào. Theo tôi nhớ đây là một vấn đề đã được sửa gần đây. Bạn không chắc chắn bản sửa lỗi này đã được bao gồm trong RC.1 –
@ GünterZöchbauer Tôi đang sử dụng phiên bản 2.0.0-rc.1 nhưng không hoạt động. –
Tôi đề nghị bạn thử lại sau lần cập nhật tiếp theo. Bản cập nhật cuối cùng là khá lâu và bản sửa lỗi đó không quá lâu trước đây, không nhớ chính xác nhưng tôi khá chắc chắn rằng nó bao gồm vấn đề này. –