我通过Angular 6组件的 .html
文件使用 HTML img
标签显示 SVG 文件 . 我们称之为 SVG 文件 a.svg
.
这个 a.svg
图像包含链接到其他 SVG 文件的部分,让我们只考虑它们中的第一个,名为 b.svg
.
所有 SVG 文件都是静态的 . 它们位于Angular 6应用程序文件夹中 assets
的子文件夹中 .
当我直接在我的Internet浏览器下打开 a.svg
时,我可以单击超链接部分并导航到 b.svg
,没有任何问题 .
在Angular 6下,文件 a.svg
显示正确,但显然,我无法点击交互式部分 .
我在没有找到关于这种行为的根本原因的真实线索的情况下调查这个问题 . 也许,与安全问题有关 . 我想知道
-
这是Angular 6的理想行为吗?
-
有没有办法告诉Angular 6,允许用户在这些图像上进行交互?
1 回答
终于找到了正确的方法 .
首先,阅读security guide for angular,它提供了许多好的提示,尽管远非详尽无遗 .
为了使我的代码顺利运行,这就是我改变的
Firstly ,在角度组件
.html
文件中,我将 HTMLimg
标记更改为div
标记,我在其上使用[innerHTML]
绑定到名为svgFromFile的内部属性Then ,在angular component
.ts
文件中,我将实现更改为使用bypassSecurityTrustHtml()
对目标 SVG 文件的内容这样, SVG 文件中的嵌入式URL现在处于活动状态且可解除引用 .