A oto oferta. Mam komponent bardzo dobrze napisany i używany w wielu miejscach. Teraz muszę użyć tego samego komponentu, ale chcę, aby inny szablon był renderowany na podstawie warunku.Jeden składnik Wiele szablonów opartych na warunku
Spróbowałem dużo.
1) Wypróbowane przy użyciu wielu dekoratorów składowych - bez powodzenia
2) próbował wielokrotnego poziom abstrakcji, gdzie właśnie skończył tworzenie więcej składników - zły pomysł
3) można dosłownie skopiować cały element, i po prostu zmienić selektor i szablon - zły pomysł
4) Obecnie Próbowałem to:
<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>
ustawić isWizard właściwość jako true/false. Problem polega na tym, że zawartość ng działa tylko raz. Tak więc, gdy isWizard jest prawdziwe, mimo że wyświetlany jest blok div, zawartość ng nie działa (ponieważ działa w powyższym bloku).
5) Zamiast ngIf Próbowałem też ngSwitch - nie działa
Teraz jestem zdesperowany. Proszę o pomoc :)
Jakiej wersji Angular2 używasz. O ile pamiętam, jest to problem, który został niedawno naprawiony. Nie wiesz, czy ta poprawka jest już uwzględniona w RC.1 –
@ GünterZöchbauer Używam wersji 2.0.0-rc.1, ale nie działa. –
Proponuję spróbować ponownie po następnej aktualizacji. Ostatnia aktualizacja jest dość dawno temu i ta poprawka nie była zbyt dawno temu, nie pamiętam dokładnie, ale jestem pewien, że obejmuje ona ten problem. –