gpt4 book ai didi

angular - 如何以 Angular 从事件监听器访问全局变量

转载 作者:行者123 更新时间:2023-12-04 10:10:16 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com