在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。
答案 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="">