2017-01-16 2 views
2

В проекте Angular 2 я установил модуль html2canvas с номером версии 0.5.0beta.html2canvas callback Onrendered не работает в Angular 2

Тогда в моем файле TS, я импортировать его как:

import html2canvas from 'html2canvas'; 

Тогда в моем методе pdfDownload, что я написал,

html2canvas (document.getElementById('exportthis'), { 
         onrendered : function (canvas) { 

После этого, когда я выполнить команду npm start , Я получил ошибку, как,

onrendered не является свойством, определенным в html2canvasOptions.

Может кто-нибудь помочь мне решить эту проблему? Это первый раз, когда я работаю над угловыми 2 и html2canvas.

+0

Добро пожаловать на переполнение стека! Ознакомьтесь с нашим [Контрольным списком вопросов] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), чтобы помочь вам задать хороший вопрос и, таким образом, получить хороший ответ. –

ответ

3

У меня возникла аналогичная проблема.

Я был в состоянии решить эту проблему, объявив объект опциона вне вызова функции html2canvas. Что-то вроде. Это не позволяет компилятору TS проверять переданный объект объекта для внутренних объектов.

var obj = { 
    onrendered: function (canvas) { 
    var imgData = canvas.toDataURL("image/png"); 
    } 
}; 
    html2canvas(document.getElementById("exportthis"), obj); 

EDIT:
После обновления машинописи до 2.4.0, если вы получите ниже ошибки

TS2559: Type '{ onrendered: (canvas: any) => void; }' has no properties in common with type 'Html2CanvasOptions'. 

затем добавить любой из Html2CanvasOptions собственности как протоколирования: ложные

obj = { 
    onrendered: function (canvas) { 
    var imgData = canvas.toDataURL("image/png"); 
    }, 
    logging: false 
}; 
    html2canvas(document.getElementById("exportthis"), obj); 
+0

работал как шарм. благодаря! – Julian

6

Probaby вы используете версию html2canvas 0.5. onrendered использовался в 0,4 и более старых версиях. html2canvas 0.5 был перезаписан для использования Promises. Вы должны изменить

html2canvas (document.getElementById('exportthis'), { onrendered : function (canvas) {

в

html2canvas(document.getElementById('exportthis')).then(function (canvas) {