Angular6 и html2canvas - объект (...) не является функцией - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь использовать html2canvas, как это было рекомендовано библиотекой, а именно:

 public takeScreenshot() {
    console.log ('Take screen shot');
    // var options = { allowTaint: true, useCORS : true };
    html2canvas(this.screenCanvas).then(function(canvas)  {  
      const contentData = canvas.toDataURL('image/png');
      console.log('successfully took the byte array for screen shot');
    });  
  }

this.screenCanvas в приведенном выше коде относится к элементу HTML, объявленному как: @ViewChild('divCanvas') screenCanvas: ElementRef;

Мой HTML-шаблон такой, как показано ниже,

  <div class='cp-screen-actionbar-button' (click)='takeScreenshot()'>
    <span aria-hidden='true'>
      <i class='far fa-eye' title='{{ screenDesignerConfig.LABELS.PREVIEW }}'></i>
    </span>
  </div>

Однако, когда вызывается функция takeScreenshot, она дает следующую трассировку стека,

ScreenDesignerComponent.html:7 ERROR TypeError: Object(...) is not a function
    at ScreenDesignerComponent.push../src/components/screen-designer/screen-designer.component.ts.ScreenDesignerComponent.takeScreenshot (screen-designer.component.ts:76)
    at Object.eval [as handleEvent] (ScreenDesignerComponent.html:7)
    at handleEvent (core.js:10258)
    at callWithDebugContext (core.js:11351)
    at Object.debugHandleEvent [as handleEvent] (core.js:11054)
    at dispatchEvent (core.js:7717)
    at core.js:8161
    at HTMLDivElement.<anonymous> (platform-browser.js:995)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:3815)

Любой указательпоможет.Заранее спасибо

...