Часть шаблона:
<ng-template *appUser="op.id">
расширена до:
<ng-template [appUser]="op.id">
<ng-template>
Ваша директива отображает все, что находится внутри <ng-template [appUser]="op.id">
.И мы можем видеть, что он обернут в другой ng-template
, который не может быть визуализирован без создания встроенного представления.
Для правильной визуализации я бы использовал ng-container
вместо ng-template
:
<ng-container *appUser="op.id">
<!-- <fa-icon [icon]="op.icon"></fa-icon> -->
<label (click)='this[op.routeFunctionName]()'>{{op.optionName}}</label>
</ng-container>
Другой способ - использование расширенной версии:
<ng-template [appUser]="op.id">
<!-- <fa-icon [icon]="op.icon"></fa-icon> -->
<label (click)='this[op.routeFunctionName]()'>{{op.optionName}}</label>
</ng-template>