Я пытаюсь передать ng-template
моей директиве, что-то вроде этого:
component.html
<div myDirective [myTemplate]="myTemplate"></div>
<ng-template #myTemplate><p>Lorem ipsum dolor sit amet.</p></ng-template>
directive.ts
import {Directive, Input} from "@angular/core"
@Directive({
selector: "[myDirective]"
})
export class MyDirective {
@Input() myTemplate
ngOnInit () {
console.log(this.myTemplate.elementRef.nativeElement)
}
}
Но это просто показывает <!-- -->
. Как мне получить доступ к содержимому шаблона? Похоже, что ни одно из других свойств не имеет его - в комментариях к этот вопрос предлагается использовать вместо него templateRef
, но оно не определено.
Stackblitz при необходимости.
Для пояснения конечная цель директивы состоит в том, чтобы условно добавить содержимое шаблона к его родительскому элементу (вместе с некоторыми другими изменениями).