我正在尝试将图标添加到matIconRegistry并将其用于mat-icon
应用内组件
constructor(
private _matIconRegistry: MatIconRegistry,
private _domSanitizer: DomSanitizer,
){
_matIconRegistry
.addSvgIcon('notification', this._domSanitizer.bypassSecurityTrustResourceUrl('../assets/svg/icon_notification.svg'));
}
我也尝试过这样,
_matIconRegistry
.addSvgIcon('notification', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/svg/icon_notification.svg'));
}
在我的组件中
<mat-icon svgIcon="notification"></mat-icon>
但是它在控制台中引发了错误
错误检索图标:无法在“ XMLHttpRequest”上执行“打开”:无效的网址
答案 0 :(得分:1)
实际上是由于拦截器导致了问题,该解决方案可在以下链接中找到:
拦截器正在阻止注册表中的“ .svg”图像。
答案 1 :(得分:0)
在我的AppComponent
中,我正在使用此方法,请注意'./assets...'
表示法,因为assets
目录与AppComponent
处于相同的层次结构级别。
registerSvgIcon(name: string): void {
this.matIconRegistry.addSvgIcon(name, this.domSanitizer.bypassSecurityTrustResourceUrl('./assets/svg-icons/' + name + '.svg'));
}