SVG 元素在浏览器中呈现,但在屏幕上不可见



我正在使用DomSanitizerSafeHtmlsvg代码注入我的组件中。 我可以在控制台中看到所有元素都在渲染,但它们在我的屏幕上不可见。 我正在使用DomSanitizer,因为我正在从数据对象生成代码。 下面是代码生成的元素的示例

<svg:polyline id="left_arm_line_10" points="67.379982,339.7200012 72.1800003,562.5199585 61.2800064,592.4199829 75.0799942,614.3199463 76.2800064,715.4199829 81.2800064,756.4199829 85.2800064,712.5199585 84.879982,603.5199585 74.7800064,587.5199585 85.6800003,558.2199707 85.379982,347.519989" stroke="black" stroke-width=".22" fill="none" />

当它直接粘贴到<svg></svg>标签之间时,它会在屏幕上可见。 我以这种方式渲染我的svg.component

<svg:g svg-component [Data]="SvgData"></svg:g>

我制作了一个堆栈闪电战演示,您可以在此处查看,我注意到在此演示中,graphic.component渲染但不呈现模板内的svg。 除此之外,所有数据都清楚地到达了需要看到的地方,我可以复制和粘贴输出的 svg 元素,我真的无法弄清楚这里出了什么问题。在此之前,我在svg.component模板中使用了一个<text>元素来制作组件作品文本,该文本呈现良好,所以我真的不明白现在有什么不同。

你的 svg 有问题。 堆栈闪电战在模板 url 中工作 svg

像下面这样的简单 svg 就像一个魅力。

<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg> 

您的 svg 的问题在于您的视图框偏离了很长时间,这就是您的 svg 不可见的原因。

在堆栈闪电战中检查 1000 1000 视图框(缩小(,您将看到您的 svg 已渲染和显示。只是不是你期望的地方。它离页面很远,你需要一个更高的视口来使其可见。

最新更新