Вызвать контент-документ объекта OnInit - PullRequest
1 голос
/ 30 марта 2020

В моем компоненте Angular есть следующее:

<object data="../../assets/drawing.svg" type="image/svg+xml"
id="svgSF" width="100%" height="100%"></object>

Однако, когда я делаю следующий фрагмент:

ngOnInit(): void {
    var svgSF:any=document.getElementById('svgSF');
    console.log(svgSF.contentDocument);
  }

Он возвращает мне пустой документ:

<html> <body> </body> </html>

Если я сделаю это в моем отладчике Chrome, он вернет мне документ svg. Объект все еще не инициализирован в моей OnInit функции?

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Вам нужно переместить эту логику c в ngAfterViewInit хук жизненного цикла.

0 голосов
/ 31 марта 2020

Необходимо использовать метод onload для элемента svg, например:

export class AppComponent implements AfterViewInit {

  ngAfterViewInit(){
    console.log("-- AfterViewInit --");
    var svgSF:any=document.getElementById('svgSF');
    svgSF.onload = () => {
        console.log(svgSF.contentDocument);
    } 
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...