Как читать svg с url? - PullRequest
       11

Как читать svg с url?

0 голосов
/ 18 июня 2020

Я использую Angular 8. Мне нужно загрузить изображение svg из ведра s3 и прочитать его содержимое. Я вызываю API, чтобы получить URL-адрес svg и загрузить его в представление. Изображение SVG успешно загружается. Затем я собираюсь прочитать svg, но содержимое svg равно нулю. За это время svg уже загрузился в представление.

html

  <object class="svg-div" id="svg-object" [data]="path" type="image/svg+xml"></object>

component.ts

export class Test implements OnInit, OnDestroy, PipeTransform {
   constructor(
    private sanitizer: DomSanitizer
    ) {}
   }

     transform(url: any) {
        const urlResource = this.sanitizer.bypassSecurityTrustResourceUrl(url);
        return this.sanitizer.bypassSecurityTrustResourceUrl(url);
      }

     ngOnInit() {

          this.getImage(this.deviceId);
     }

   private getImage(deviceId: string) {
    if (this.xSubscription) {
      this.xSubscription.unsubscribe();
    }
    this.xSubscription = this.testService.getImage(deviceId)
      .subscribe(
        image => {
          if(!!image.filePath) {
            this.path = this.transform(image.filePath);
          }
          this.myfucntion();
        }
      );

    myfucntion() {
       let svgDoc;

       const mySVG: any = document.getElementById('svg-object');

       mySVG.addEventListener('load',() => {
          svgDoc = mySVG.contentDocument;
          console.log('svgDoc ',svgDoc);     // This is null..
          const elements = svgDoc.getElementsByTagName('text');
       }
     }
  }

Ниже console.log svgDo c значение переменной равно null ..

console.log('svgDoc ',svgDoc);

Может ли кто-нибудь помочь мне получить содержимое svg?

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...