не может прочитать элемент HTML, используя дочерний вид - PullRequest
0 голосов
/ 21 мая 2019

Я использую библиотеку Svn-Pan-Zoom для масштабирования моего SVG-изображения.Но я получаю ошибку, как.

Не удается прочитать свойство 'documentElement' со значением null .

, что я пробовал до сих пор.

svg-view.component.html

<div>
  <object #demosvg id="demosvg" type="image/svg+xml" data="assets/images/history.svg" style="width: 500px; height: 500px; border:1px solid white;"></object>
</div>

svg-view.component.ts

import {AfterViewInit, Component, ElementRef, ViewChild, Renderer2} from '@angular/core';
import * as  SvgPanZoom from 'svg-pan-zoom';

@Component({
  selector: 'nxui-svg-view',
  templateUrl: './svg-view.component.html',
  styleUrls: ['./svg-view.component.scss']
})
export class SvgViewComponent implements AfterViewInit {

  @ViewChild('demosvg', {read: ElementRef}) demo: ElementRef;
  private svgPanZoom: SvgPanZoom.Instance = null;

  constructor(private rd: Renderer2) {}

  ngAfterViewInit(){

    this.demo.nativeElement.nodeSelect = this.click;
    (<any> window).nodeSelect = this.click.bind(this);


    setTimeout(() =>
      this.svgPanZoom = SvgPanZoom(this.demo.nativeElement, {
        panEnabled: true,
        controlIconsEnabled: true,
        dblClickZoomEnabled: false,
        customEventsHandler: {
          init: (options) => {
            // options.svgElement.onselect = this.click;
          },
          haltEventListeners: null,
          destroy: null
        }
      }), 50);
  }


  click(e): void {
    console.log('Click, Click ...');
  }
}

Я попытался увеличить время ожидания.Но это не работает.

Может кто-нибудь затенить эту проблему?Спасибо

...