我有一个 Angular 项目,它使用 Fabric.js 作为 Canvas 。 我在使用 Canvas 对象的事件监听器时遇到一个问题。
在下面的代码中,我想在函数“movehandler”中使用全局变量“disabled”。 “console.log(this.disabled)”不起作用。 它在控制台中显示为“未定义”。
如何在 Canvas 函数中使用全局变量。
...
disabled = "yes";
...
ngAfterViewInit(){
this.canvas = new fabric.Canvas(this.canvasTerm);
console.log(this.canvas);
this.innerWidth = window.innerWidth;
this.innerHeight = window.innerHeight;
this.canvas.setHeight(this.innerHeight - 120);
this.canvas.setWidth(this.innerWidth - 120);
this.canvas.on('object:moving', function () {
console.log('Event object:moving Triggered');
});
var moveHandler = function (evt) {
var movingObject = evt.target;
//console.log("sss",movingObject.get('left'), movingObject.get('top'));
};
//handler for done modifying objects on canvas
var modifiedHandler = function (evt) {
var modifiedObject = evt.target;
console.log(this.disabled);
console.log( modifiedObject.id,"last",modifiedObject.get('left'), modifiedObject.get('top'));
};
var customEvtHandler = function (evt) {
console.log("I was triggered by a custom event.");
};
//or you register with key/value pairs
this.canvas.on({
'object:moving' : moveHandler,
'object:modified' : modifiedHandler,
'custom:event' : customEvtHandler
});
}
最佳答案
尝试箭头功能。
而不是:
function (evt) {
}
试试这个:
() => {
}
或
(evt) => {
}
关于angular - 如何从 Angular 事件监听器访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61362811/