Если у вас голый HTMLElement
, там ничего Angular -й вы не сможете сделать. NgTemplateOutlet
ожидал TemplateRef
, а не ванильного HTMLElement
объекта.
Чтобы вставить элемент HTML в DOM, просто используйте для этого соответствующий метод DOM. Какой из них вы будете использовать, полностью зависит от места, где вы хотите его использовать.
Например, вы можете сделать
const wrapper = document.querySelector('div.wrapper')
wrapper.append(el) // pass in your element
Вы также можете получить ссылку на оболочку в подробнее Angular, добавив ссылку Angular в шаблон на элемент, который вы хотите выбрать,
<div class="wrapper" #wrapper></div>
и используя ViewChild
декоратор для свойства, которому вы хотите назначить Angular от ElementRef
до.
@ViewChild('wrapper', { static: true, read: ElementRef })
public wrapperElRef: ElementRef<HTMLDivElement>
После инициализации представления (вы получите уведомление, когда это произойдет через ловушку ngAfterViewInit
), вы можете захватить элемент HTML внутри, обратившись к `. nativeElement:
this.wrapperElRef.nativeElement //: HTMLDivElement
Теперь вы можете сделать
this.wrapperElRef.nativeElement.append(elem)
Тем не менее, если вы не знаете, что делаете (обычно обертывание существующей библиотеки или интеграция с существующей большой систему, которую вы еще не можете полностью реорганизовать)