Я пытаюсь отобразить шаблон в дочернем элементе родительского компонента в зависимости от значения его типа, как описано в этой схеме
ЯПередав ng-шаблон в родительское представление (мой контейнер), используя myTemplateDirective
--myTemplateDirective--
this.parent.setDirective(this);
--my-container--
setDirective(test) {
this.tmpl = test;
}
в моем контейнере, я передаю его my-componentenet, который имеет директиву в качестве входных данных, и отображает ее
const element = this.template.renderTemplate(this.data ,this.viewContainerRef);
renderTemplate(templateData, vcRef) {
this.renderCount++;
const viewData = {
$implicit: {
data: templateData,
renderCount: this.renderCount
}
};
const childView = vcRef.createEmbeddedView(this.templateRef, viewData);
// =========== WORKAROUND =============
// We have to use private API to force DOM to update
// childView['detectChanges']();
// =========== /WORKAROUND =============
this.cd.detectChanges();
return childView.rootNodes[0];
}
после создания встроенного вида результат, который я получаю из return childView.rootNodes [0]:
<!---->
Я создал плункер, содержащий весь код, чтобы лучше понять проблему пример кода плунжера