У меня есть рекурсивная древовидная структура, содержащая узлы, каждая из которых имеет свойство «htmlStringContent». Когда я отображение дерева с использованием вложенных компонентов «узел» и попытаться представить содержание HTML я использую:Динамически отображать элементы, содержащие HTML с функциями (click) Angular 2
<div [innerHtml]="node.htmlStringContent"></div>
HTML-дисплеи правильно, но для следующих элементов:
<a (click)="function()">click me</a>
В (нажмите) функции не работают. Я знаю, что у этого есть previously been posted, но с большим количеством обновлений угловой вывел недавно я не могу найти какие-либо решения. This answer заставляет меня поверить, что я должен использовать директиву ngComponentOutlet, но я не уверен, как это сделать.
Как я могу получить угловое связывание этой функции щелчка?
Редактировать: Мне сказали использовать ComponentFactoryResolver, но не вижу, как я могу использовать это, чтобы правильно отображать html. Может ли кто-нибудь помочь?
Edit2: Я разбор «htmlStringContent» через дезинфицирующую трубу перед выводом его на [innerHtml]
transform(v: string) : SafeHtml {
return this._sanitizer.bypassSecurityTrustHtml(v);
}
Edit3: В основном этот вопрос спрашивает, является ли это, как все можно отображать HTML от собственности на объект в угловом 2/ионном 2, сохраняя при этом функциональность (щелчок). Я также открыт для обходных ответов.
Этот клик по клику не будет работать. У вас есть компонент создания, и вы сможете генерировать событие клика, как показано на одной из ваших ссылок. – micronyks
@micronyks, но мне все равно придется использовать [innerHtml] для представления содержимого html? – alsco77
Я понимаю это, но, как и angular1, angular2 не имеет службы '$ compile', поэтому вы можете сделать это, используя' componentFactoryResolver'. – micronyks