Как получить доступ к глобальной переменной из прослушивателя событий в angular - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть один Angular проект, который использует fabri c. js для canvas. У меня есть одна проблема в использовании прослушивателя событий для объекта canvas.

В приведенном ниже коде я хочу использовать глобальную переменную «disabled» в функции «movehandler». "console.log (this.disabled)" не работает. В консоли оно отображается как «undefined».

Как использовать глобальную переменную в функции для 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
    });
  }

1 Ответ

0 голосов
/ 22 апреля 2020

Попробуйте функции стрелок.

вместо:

function (evt)

попробуйте это:

() => {

или

(evt) => {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...