Я хотел бы создать структурную директиву, которая будет вести себя следующим образом:
<p *myDirective="condition">This is some text</p>
- Если
condition
равно false
, то тег <p>
равен , а не отображается вообще. - Если
condition
равно true
, то тег <p>
отображается с дополнительным атрибутом class
.
Итак, либо есть Ничего рендеринга, или:
<p class="my-added-class">This is some text</p>
Другими словами, это немного похоже на *ngIf
, но с дополнительным поведением.
Я могу найти примеры того, как сделатьповедение include / exclude (на самом деле такой пример есть в Angular docs ).Я также могу найти примеры того, как добавить класс к элементу , используя Renderer2
API .
Однако я не вижу, как я могу объединить эти методы, потому что первыйМетод манипулирует viewContainer
для создания встроенного представления , тогда как второй метод использует средство визуализации для манипулирования элементом .
Есть ли способсделать это? Можно ли как-то создать встроенное представление, а затем манипулировать элементами, которые оно создает?Или я могу манипулировать шаблоном, чтобы изменить способ отображения вида?
[ПРИМЕЧАНИЕ: @HostBinding
не работает со структурными директивами, так что это не вариант]