Angular 使用SVG<;参数>;角度标记2
有一个模板:Angular 使用SVG<;参数>;角度标记2,angular,svg,Angular,Svg,有一个模板: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <g id="tpl1"> <image xmlns:xlink="http://www.w3.org/1999/xlink" [attr.xl
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<g id="tpl1">
<image xmlns:xlink="http://www.w3.org/1999/xlink"
[attr.xlink:href]="param(url)"
[attr.x]="-18" [attr.y]="-30"></image>
</g>
</defs>
<svg:use [attr.x]="25" [attr.y]="25"
[attr.xlink:href]="fullPath()+'#tpl1'">
<param name="url" value="/img.png" />
</svg:use>
</svg>
获取错误:
未处理的承诺拒绝:模板分析错误:“:svg:param”为
不是已知元素:
fullPath()-是一个使用LocationStrategy服务检索活动url的函数,它允许我使用,但现在我被param绊住了…好吧,解决了,实际上它由两部分组成: 1) -角度误差2。 设置自定义\u元素\u架构没有帮助,至少仍然出现错误,但将其替换为无\u错误\u架构允许其通过
@NgModule({
imports: [/***/],
declarations: [/***/],
exports: [/***/],
schemas: [NO_ERRORS_SCHEMA]
})
2) 不幸的是,它不能在SVG中使用,至少在我的想法中是这样。我被这句话蒙蔽了。所以SVG在我的版本中不起作用,但我能够使用WorkAround,使用CSS变量:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<g id="tpl1">
<circle xmlns:xlink="http://www.w3.org/1999/xlink"
[attr.style]="_sanatizer.bypassSecurityTrustStyle('r:var(--radius)')"
[attr.cx]="-18" [attr.cy]="-30"></circle>
</g>
</defs>
<svg:use [attr.x]="25" [attr.y]="25"
[attr.xlink:href]="fullPath()+'#tpl1'"
[attr.style]="_sanatizer.bypassSecurityTrustStyle('--radius:10')"
></svg:use>
</svg>
正如您所见,还需要使用DomSanatizer来设置样式
但我又一次运气不好,xlink:href不能在CSS中设置),但我会离开这篇文章,也许它会对某人有所帮助
UPD:
对于我的特殊情况,我最终创建了新组件,而不是使用