Я использую 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?
спасибо