html2canvas回调Onrendered在Angular 2

时间:2017-01-16 17:42:52

标签: angular html2canvas

在Angular 2项目中,我安装了版本号为0.5.0beta的html2canvas模块。

然后在我的TS文件中,我将其导入为:

import html2canvas from 'html2canvas';

然后在我写的pdfDownload方法中,

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

在此之后,当我执行npm start命令时,我得到了错误,

  

onrendered不是html2canvasOptions中定义的属性。

有人可以帮我解决这个问题吗? 这是我第一次使用angular 2和html2canvas。

3 个答案:

答案 0 :(得分: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) {

答案 1 :(得分:3)

我遇到了类似的问题。

我能够通过在html2canvas函数调用之外声明选项对象来解决它。就像是。这可以防止TS编译器检查内部传递的选项对象。

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

修改
将typescript升级到2.4.0后,如果出现以下错误

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

然后添加任何Html2CanvasOptions属性,如logging:false

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

答案 2 :(得分:0)

wrapper.destroy()

newImg; saveImage() { html2canvas(document.getElementById('capture')).then((canvas) => { this.newImg = canvas.toDataURL("image/png") }) }

安装:

<img [src]="newImg" alt="">