使用 Angular 2 渲染 SVG 数据

Dar*_*son 3 data-binding svg angular

我有一个 Angular 应用程序,它从服务获取产品信息并将其返回到 json 对象中。在 html 模板上,我想在页面上显示此 SVG 图像。我尝试了几种不同的方法,但我无法使用任何方法来渲染图像。

方法一:

<div class="prodStruc" [innerHtml]="product?.StructureSVG" style="float:right">   
Run Code Online (Sandbox Code Playgroud)

此方法仅渲染 svg 图像中的文本

方法二:

<div class="prodStruc" style="float:right">            
      {{product?.StructureSVG}}
    </div>
Run Code Online (Sandbox Code Playgroud)

此方法将所有 svg 标签和数据作为一个大字符串吐出(如预期)

谁能指出我如何做到这一点的正确方向......如果可以做到的话?

Fab*_*abi 5

我刚刚遇到了同样的问题。这是解决方案:

import {DomSanitizer, SafeHtml} from '@angular/platform-browser';

// inject DomSanitizer in constructor
private myImage: SafeHtml;

constructor(private sanitizer: DomSanitizer) {
  this.myImage = sanitizer.bypassSecurityTrustHtml(product.StructureSVG);
}
Run Code Online (Sandbox Code Playgroud)
<div class="prodStruc" [innerHtml]="myImage"> </div>
Run Code Online (Sandbox Code Playgroud)

然后在你的模板中: