动态更改指南的价值和toValue(AMCharts)

时间:2019-02-21 16:12:38

标签: javascript amcharts

我试图用一个按钮来动态更改guides参数的value和toValue字段。这是我的代码,我正在尝试:

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 :(得分:0)

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()对象访问所有图表对象。