Вы можете использовать ngTemplateOutlet
: https://angular.io/api/common/NgTemplateOutlet
<app-user>
<app-table [cardTemplate]="pCard"></app-detail>
</app-user>
<ng-template let-record #pCard>
<div class="card">
</div>
</ng-template>
Компонент таблицы:
<div class="nsCard">
<ng-container *ngTemplateOutlet="cardTemplate; context:{$implicit: record}"></ng-container>
</div>
А внутри компонента таблицы:
@Input() cardTemplate: TemplateRef<any>;
На самом деле этоэто более продвинутая форма ng-template
, которая предоставляет возможность передавать данные и многие другие.