Очистка SVG в Angular 7

#angular #svg

#angular #svg

Вопрос:

Я пытаюсь очистить SVG объект без какой-либо удачи.

У меня есть следующий HTML-шаблон:

canvas.component.html

 <object #worldMap class="worldMap" [attr.data]="'assets/canvas/world.svg' | safe: 'resourceUrl'" type="image/svg xml" id="worldMap">Your browser doesn't support SVG</object>
 

и в safe.pipe.ts

 import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';

@Pipe({
  name: 'safe'
})
export class SafePipe implements PipeTransform {    
  constructor(protected sanitizer: DomSanitizer) { }

  public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
    switch (type) {
      case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);
      case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);
      case 'script': return this.sanitizer.bypassSecurityTrustScript(value);
      case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);
      case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);
      default: throw new Error(`Invalid safe type specified: ${type}`);
    }
  }    
}
 

Однако это не работает, поскольку показывает только сообщение внутри тегов объекта.

Какой был бы альтернативный способ отображения SVG из папки assets?

Комментарии:

1. Эта страница содержит полезные примеры: chrisjmendez.com/2017/06/17 /…