【发布时间】:2019-03-30 03:10:00
【问题描述】:
我有一个包含节点的递归树结构,每个节点都有一个“htmlStringContent”属性。当我使用嵌套的“节点”组件显示树并尝试呈现我使用的 html 内容时:
<div [innerHtml]="node.htmlStringContent"></div>
HTML 正确显示,但以下元素:
<a (click)="function()">click me</a>
(点击)功能不起作用。我知道这有previously been posted,但是最近 Angular 带来了大量更新,我找不到任何解决方案。 This answer 让我相信我应该使用 ngComponentOutlet 指令,但我不确定如何..
如何获得 Angular 来绑定此点击功能?
编辑:有人告诉我使用 ComponentFactoryResolver,但看不到如何使用它来正确显示 html。谁能提供进一步的帮助?
Edit2:我正在通过清理管道解析“htmlStringContent”,然后在 [innerHtml] 上显示它
transform(v: string) : SafeHtml {
return this._sanitizer.bypassSecurityTrustHtml(v);
}
Edit3:基本上这个问题是询问是否尽可能在角度 2/ionic 2 中显示来自对象的属性的 HTML,同时保留其(单击)功能。我也愿意接受解决方法的答案。
【问题讨论】:
-
这种方式点击事件不起作用。您有一个创建组件,然后您将能够生成单击事件,如您的一个链接中所示。
-
@micronyks 但我仍然必须使用 [innerHtml] 来呈现 html 内容?
-
我明白,但是和 angular1 一样,angular2 没有
$compile服务,所以你可以使用componentFactoryResolver来完成。 -
@micronyks 不完全确定如何使用它......你能更详细一点吗?
-
树结构我不确定,但是当模板有角度上下文时,你应该只使用 CFR。
标签: angular typescript2.0