Динамически изменять значение & toValue направляющих (AMCharts) - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь динамически изменить поле value & toValue параметра guides кнопкой, чтобы сбросить его.это мой код, как я пытаюсь это сделать:

function changeTresh(){
    var treshhold1 = parseFloat(document.getElementById("treshhold1").value);
    var treshhold2 = parseFloat(document.getElementById("treshhold2").value);
    
    console.log(treshhold1);
    console.log(treshhold2);
    if(treshhold1 & treshhold2 != 0){
    chartConfig.guides["0"].value = treshhold1;
    chartConfig.guides["0"].toValue = treshhold2;
    
        
    chartConfig.guides["1"].toValue= treshhold1;
    
    chartConfig.guides["2"].value = treshhold2;
    
    }
}

Это код для кнопки:

<label for="treshhold1">Minimum value:</label>
<input type="number" name="treshhold1" id="treshhold1"><br>
<label for="treshhold2">Maximum value:</label>
<input type="number" name="treshhold2" id="treshhold2">
<input type="button" value="Change treshholds" id="btChangeTresh" onclick="changeTresh()">

Моя функция не выдает никаких ошибок, но все равно не работает.я пробовал console.log, и он прекрасно выполняет эту функцию, пока chartConfig.guides ["0"]. value = treshhold1;линия.Там он просто останавливается, но не выдает ошибку.

Кто-нибудь знает, что случилось?

1 Ответ

0 голосов
/ 22 февраля 2019

guides - это массив , а не объект.Неправильное цитирование индексов в массиве:

chartConfig.guides[0].value = treshhold1;
chartConfig.guides[0].toValue = treshhold2;


chartConfig.guides[1].toValue= treshhold1;

chartConfig.guides[2].value = treshhold2;

Также обратите внимание, что при обновлении любого свойства в диаграмме вы должны вызывать validateData для вашего объекта диаграммы, вносящего изменения,например, chart.validateData().Я не уверен, соответствует ли chartConfig реальному объекту диаграммы, но если нет, вам нужно получить доступ к переменной объекта диаграммы, которая возвращается из AmCharts.makeChart, и вызвать validateData из этой переменной.Вы также можете получить доступ ко всем своим объектам диаграммы через глобальный объект AmCharts через массив charts, то есть AmCharts.charts[0].validateData() и т. Д.

...