我有一个XML数据库和一个XSLT文档,用于在传递给服务器和Angular客户机之前将此XML转换为HTML。然后我使用[innerHTML]
显示这个超文本标记语言。我希望能够使用锚标签在页面内导航(例如脚注),并最终导航到不同的组件。我已经包含了脚注的示例代码。鉴于Angular在使用innerHTML时会删除routerLink属性,我正在处理一个解决方案,编辑DOM元素并手动添加属性和单击行为。然而,这看起来并不是很有意义,所以我想知道是否有更好的方法来做这件事?
document = '<a routerLink="." fragment="45"><sup>45</sup></a><p>Other text</p><div id="45>Footnote text</div>'
<div id="view-panel" [innerHTML]="document | safe: 'html'">
发布于 2020-07-01 03:45:46
我已经创建了一个包:ngx-event-handler,它允许您做一些不应该做但有时不得不做的事情。比如侦听文档事件来检测外部元素单击,或者在您的例子中处理来自innerHTML的锚点单击。
这里是Stackblitz
<div (handleEvent)="routerlinkClicked($event)"
[inclusion]="['a']"
id="view-panel"
[innerHTML]="document">
</div>
routerlinkClicked(element : HTMLElement) {
this.router.navigate([element.getAttribute('routerlink')]);
}
在此StackBlitz的最后一个示例中,我处理href的
https://stackoverflow.com/questions/62653682
复制相似问题