Javascript canvas.getZoom()在Angular8中未使用fabricjs定义
我在Angular 8和鼠标滚轮事件中使用Javascript canvas.getZoom()在Angular8中未使用fabricjs定义,javascript,angular,typescript,angular8,Javascript,Angular,Typescript,Angular8,我在Angular 8和鼠标滚轮事件中使用fabricjs,我想缩放画布。但是,当事件被触发时,我得到了关于函数的错误,canvas.getZoom()是未定义的。我已经搜索过了,但没有找到任何与此问题相关的内容。我在fabricjs中的其他功能正在运行,但这不是 这是我的密码: this.canvas.on('mouse:wheel', function(opt) { var delta = opt.e.deltaY; console.log("delta",delta)
fabricjs
,我想缩放画布。但是,当事件被触发时,我得到了关于函数的错误,canvas.getZoom()
是未定义的
。我已经搜索过了,但没有找到任何与此问题相关的内容。我在fabricjs
中的其他功能正在运行,但这不是
这是我的密码:
this.canvas.on('mouse:wheel', function(opt) {
var delta = opt.e.deltaY;
console.log("delta",delta)
var zoom = this.canvas.getZoom();
console.log("zoom",zoom)
zoom = zoom + delta/200;
if (zoom > 20) zoom = 20;
if (zoom < 0.01) zoom = 0.01;
this.canvas.setZoom(zoom);
opt.e.preventDefault();
opt.e.stopPropagation();
})
this.canvas.on('mouse:wheel',函数(opt){
var delta=选择e deltaY;
console.log(“delta”,delta)
var zoom=this.canvas.getZoom();
console.log(“缩放”,缩放)
缩放=缩放+增量/200;
如果(缩放>20)缩放=20;
如果(缩放<0.01)缩放=0.01;
this.canvas.setZoom(缩放);
opt.e.preventDefault();
选择e.停止播放();
})
它在控制台上以delta的值打印,但在激发
this.canvas.getZoom()
后,它会抛出错误。函数中的此
是函数本身,而不是组件。您可以尝试在该函数外部声明一个self=this
,然后使用self.canvas.getZoom()
我使用的是Angular 8,“this”是对canvas全局变量的引用。self在类型“Window&typeof globalThis”上不存在,那么如果函数内部是画布本身,请使用this.getZoom()
这可能会有所帮助