Итак, вот сделка. У меня есть компонент, который очень хорошо написан и используется во многих местах. Теперь мне нужно использовать один и тот же компонент, но вам нужен другой шаблон для визуализации, основанный на условии.Один компонент Несколько шаблонов на основе условия
Я пробовал много.
1) Пробовал не используя несколько декораторов компонентов - не повезло
2) Пробовал несколько уровень абстракций, где я только что в конечном итоге создание более компонентов - плохая идея
3) Можно буквально скопировать весь компонент, и просто изменить селектор и шаблон - плохая идея
4) в настоящее время я пытался это:
<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>
Я установил isWizard свойство true/false. Теперь проблема заключается в том, что ng-content запускается только один раз. Поэтому, когда isWizard является истинным, хотя отображается блок div, ng-контент не запускается (потому что он работает в вышеупомянутом блоке).
5) Вместо использования ngIf я также попытался ngSwitch - не работает
теперь я в отчаянии. Пожалуйста, помогите :)
Какая версия Angular2 вы используете. Насколько я помню, это проблема, которая была исправлена в последнее время. Не уверен, что это исправление уже включено в RC.1 –
@ GünterZöchbauer Я использую 2.0.0-rc.1, но не работает. –
Я предлагаю вам попробовать еще раз после следующего обновления. Последнее обновление довольно давно назад, и это исправление было не так давно, не помню точно, но я уверен, что он охватывает эту проблему. –