Наконец-то нашел рабочее решение!
Мой дочерний компонент выглядит так:
@Component({
selector: 'child-component'
templateUrl: './child.template.html'
})
export class ChildComponent {
ViewChild('childComponentTemplate') childComponentTemplate: TemplateRef<any>;
}
Мой дочерний шаблон выглядит так:
<ng-template #childComponentTemplate>
... some content ...
</ng-template>
и мой родительский шаблон как:
<child-component #wrapper [someInput]="123"></child-component>
<ng-content *ngTemplateOutlet='wrapper.childComponentTemplate'></ng-content>
Таким образом, обертки вообще нет.