pra*_*een 3 html2canvas angular
在Angular 2项目中,我安装了版本号为0.5.0beta的html2canvas模块.
然后在我的TS文件中,我将其导入为:
import html2canvas from 'html2canvas';
Run Code Online (Sandbox Code Playgroud)
然后在我写的pdfDownload方法中,
html2canvas (document.getElementById('exportthis'), {
onrendered : function (canvas) {
Run Code Online (Sandbox Code Playgroud)
在此之后,当我执行npm start命令时,我得到了错误,
onrendered不是html2canvasOptions中定义的属性.
任何人都可以帮我解决这个问题吗?这是我第一次使用angular 2和html2canvas.
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) {
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题。
我能够通过在html2canvas函数调用之外声明选项对象来解决这个问题。就像是。这会阻止 TS 编译器检查传递的选项对象的内部结构。
var obj = {
onrendered: function (canvas) {
var imgData = canvas.toDataURL("image/png");
}
};
html2canvas(document.getElementById("exportthis"), obj);
Run Code Online (Sandbox Code Playgroud)
编辑:
将 typescript 升级到 2.4.0 后,如果出现以下错误
TS2559: Type '{ onrendered: (canvas: any) => void; }' has no properties in common with type 'Html2CanvasOptions'.
Run Code Online (Sandbox Code Playgroud)
然后添加任何 Html2CanvasOptions 属性,例如logging: false
obj = {
onrendered: function (canvas) {
var imgData = canvas.toDataURL("image/png");
},
logging: false
};
html2canvas(document.getElementById("exportthis"), obj);
Run Code Online (Sandbox Code Playgroud)