I faced the same issue, for more clarification, I added your example working.
<!-- some html before -->
<table>
<!-- complex header markup with sorting/filtering support -->
<tr *ngFor="let item of data">
<ng-template [ngTemplateOutlet]="templateRef" [ngTemplateOutletContext]="{$implicit: item}"></ng-template>
</tr>
</table>
//some html after
In the Component, you need to declare templateRef like this.
export class AppTableComponent {
...
@ContentChild(TemplateRef) templateRef: TemplateRef<any>;
...
}
Then use your component like this.
<app-table>
<ng-template let-item>
<td>{{item.Name}}</td>
...
</ng-template>
</app-table>