Изменение значения переменной в событии выбора Highcharts в angular - PullRequest
0 голосов
/ 29 апреля 2020

Для начала вот фрагмент кода в angular 7+ с использованием Highcharts API:

export class TestComponent implements OnInit{
    seek: boolean = false;
    exampleChart;
    public options = {
        chart:{
            zoomType: 'x',
            events: {
                selection: function(event){
                    this.seek = true;
                    console.log(this.seek); // outputs to true
                }
            }
        },
        xAxis:{
            type:'datetime'
        }
        series:{
            // given relevant datetime values
        }
    };

    constructor(){}
    ngOnInit{
        this.exampleChart = this.options;
    }

    onClick(){
        console.log(this.seek); // outputs false
    }

}

Сценарий: сначала я выбираю определенную часть на графике, а затем нажимаю кнопку

Поскольку zoomtype включен ось x , я могу увеличивать и уменьшать масштаб, и событие выбора запускается с правильное значение события. Однако я также изменяю значение seek в этом событии на true . Это изменение не отражается на исходном seek , так как при нажатии кнопки и вызове функции onClick () значение поиска в консоли выводит значение false. Я не знаю, почему так происходит и как получить правильное значение.

1 Ответ

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

Правильный ответ, предложенный @sagat:

public options = {
        chart:{
            zoomType: 'x',
            events: {
                selection: (event)=> {
                    this.seek = true;
                    console.log(this.seek); // outputs to true
                }
            }
        },
        xAxis:{
            type:'datetime'
        }
        series:{
            // given relevant datetime values
        }
    };


constructor(){}
    ngOnInit{
        this.exampleChart = this.options;
    }

    onClick(){
        console.log(this.seek); // outputs true
    }

Спасибо.

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