由于解析错误,无法加载Angular Material SVG图标

时间:2019-03-11 10:22:54

标签: angular typescript angular-material

我正在尝试使用角度材料7.2.0和
加载自定义svg图标 角度v7.2.0

因此,我将图标注册为

iconRegistry.addSvgIcon('box',
  sanitizer.bypassSecurityTrustResourceUrl('assets/box.svg'));

然后我将图标用作

<mat-icon  svgIcon="box"></mat-icon>

但图标未显示。
在控制台中,我可以看到错误Error retrieving icon: Http failure during parsing for http://localhost:4200/assets/box.svg

我检查了引发错误的代码,在那里我看到错误发生在从iconRegistry.getNamedSvgIcon返回的流中,因此我在注册图标后添加了以下代码:

iconRegistry.getNamedSvgIcon('box')
.subscribe(res => console.log(res), err => console.error(err))

现在我可以看到,实际错误包含Unexpected token < in JSON at position 0,因此看来angular试图将SVG解析为Json。

这是一个错误还是我配置错误?我还检查了响应的标题,并且SVG的内容类型正确。

1 个答案:

答案 0 :(得分:0)

对于SSR,需要完整的URL才能检索svg图标。 遇到此问题时,我使用以下方法修复了该问题:

import numpy as np
import matplotlib.pyplot as plt

a=[np.array([2.40460915, 0.85513601]), np.array([1.80998096, 0.97406986]), np.array([2.14505475, 0.96109123]), np.array([2.12467111, 0.93991277])]
plt.scatter(*zip(*a)) #x,y=zip(*a)
plt.show()