我试图将SVG添加到加载创建函数中,但是当我查看它时,我只看到一个空标签。
let loading = this.loadingCtrl.create({spinner: ' ',
content: this.appConfig.customSpinner })
上面是我创建的代码,那个变量是下面SVG代码的代码。
<svg id="Layer_3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2419 1188.4">
<defs>
<mask id="mask">
<path fill="#000" d="M570.2 87.3L163.8 322c-15.6 9-25.2 25.6-25.2 43.6v469.3c0 18 9.6 34.6 25.2 43.6l406.4 234.7c15.6 9 34.7 9 50.3 0l406.4-234.7c15.6-9 25.2-25.6 25.2-43.6V365.6c0-18-9.6-34.6-25.2-43.6L620.5 87.3c-15.5-8.9-34.7-8.9-50.3 0z"/>
<path fill="#000" d="M787.4 474.6V343.5H394.2v505.6h131V661.8h262.2v-131H525.2v-56.2z"/>
<path fill="#000" d="M581.4 718h206v131.1h-206z"/>
<circle fill="#fff" cx="0" cy="1450" r="551.3"/>
</mask>
</defs>
<style>
.st2{fill:none;stroke-width:40;stroke-miterlimit:10;}
</style>
<path id="background" mask="url(#mask)" fill="#F16E18" d="M570.2 87.3L163.8 322c-15.6 9-25.2 25.6-25.2 43.6v469.3c0 18 9.6 34.6 25.2 43.6l406.4 234.7c15.6 9 34.7 9 50.3 0l406.4-234.7c15.6-9 25.2-25.6 25.2-43.6V365.6c0-18-9.6-34.6-25.2-43.6L620.5 87.3c-15.5-8.9-34.7-8.9-50.3 0z"/>
<path class="letter" mask="url(#mask)" fill="#fff" d="M787.4 474.6V343.5H394.2v505.6h131V661.8h262.2v-131H525.2v-56.2z"/>
<path class="letter" mask="url(#mask)" fill="#fff" d="M581.4 718h206v131.1h-206z"/>
<path id="hexagon-2" stroke="transparent" class="st2" d="M570.1 82.5L163.7 317.2c-15.6 9-25.2 25.6-25.2 43.6v469.3c0 18 9.6 34.6 25.2 43.6l406.4 234.7c15.6 9 34.7 9 50.3 0l406.4-234.7c15.6-9 25.2-25.6 25.2-43.6V360.8c0-18-9.6-34.6-25.2-43.6L620.4 82.5c-15.5-8.9-34.7-8.9-50.3 0z"/>
<path id="hexagon-1" stroke="transparent" class="st2" d="M570.1 82.5L163.7 317.2c-15.6 9-25.2 25.6-25.2 43.6v469.3c0 18 9.6 34.6 25.2 43.6l406.4 234.7c15.6 9 34.7 9 50.3 0l406.4-234.7c15.6-9 25.2-25.6 25.2-43.6V360.8c0-18-9.6-34.6-25.2-43.6L620.4 82.5c-15.5-8.9-34.7-8.9-50.3 0z"/>
</svg>
我该如何使它渲染出来?我也在ionic论坛上复制了它,链接在这里link
我尝试添加一个管道,在运行时使其安全,但也失败了。
我将内容修改为:
<div [innerHTML]='appConfig.customSpinner | safe'></div>
这是我的管道:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({name: 'safe'})
export class SafeHtml {
constructor(private sanitizer:DomSanitizer){}
transform(html:any):any {
return this.sanitizer.bypassSecurityTrustHtml(html);
}
}
我也尝试使用文件:
let loading = this.loadingCtrl.create({spinner: 'hide', content:"<object data='assets/spinner.svg' type='image/svg+xml'></object>"})
这仍会导致相同的问题。
NB**
更改代码后,我意识到无法将清理程序的返回值直接分配给变量,而是要在类中声明一个变量来存储它。一旦我这样做了,就不再出现TS类型错误,并且svg XML加载成功。