Dojo图表不会重新渲染以更新系列

时间:2014-01-18 13:31:09

标签: javascript charts dojo highcharts render

我有以下代码,我想要做的是使用按钮按下的AJAX调用更新图表(也在页面启动时)。我遇到的问题是图表不会更新或重新呈现。我已经硬编码了来自服务器的值作为测试,因为我知道我可以获得值。

 require(["dojox/charting/Chart", 
                 "dojox/charting/axis2d/Default", 
                 "dojox/charting/plot2d/Lines", 
                 "dojo/ready", 
                 "dojox/charting/themes/Claro",
                 "dojo/request",
                 "dojo/dom",
                 "dojo/on"],
            function(Chart, Default, Lines, ready, theme, request, dom, on){ 
            ready(function(){
                var policeResChart = new Chart("simplechart");
                policeResChart.addPlot("default", {type: Lines, enableCache:true});
                policeResChart.setTheme(theme);
                policeResChart.theme.plotarea.fill = "";
                policeResChart.fill = "";//the broder around the chart
                policeResChart.addSeries("data", policeResponses, {stroke:{color:"orange", width:3}});
                policeResChart.render();

                var myButton = dom.byId("btn");
                on (myButton, "click", function(evt){
                    request.post("test.jsp", {
                        data:{
                            color: "blue"
                        }
                        }).then(
                        function(response){
                            var newData = [
                                { y: 1 },
                                { y: 1 },
                                { y: 1 },
                                { y: 31 },
                                { y: 1 }];

                            policeResChart.updateSeries("data", newData);
                            policeResChart.render();

                        }//end response

                    );

                });//end onclick


        });//ends ready function

    });//ends require

什么也很奇怪,只能调用1个render()。例如,如果我将第一个(准备就绪)渲染出来并使用onclick渲染,它将起作用。我也注意到我在onclick中第二次渲染后放置的任何东西都不起作用。因此,按钮按钮中的第二次渲染后的警报(“测试”)不执行任何操作。我不太清楚为什么。

1 个答案:

答案 0 :(得分:0)

好吧,出于某种奇怪的原因,当我在按钮按下时使用policeResChart.fullRender();时,这是有效的。有人可以解释原因吗?我不完全理解为什么render()不起作用。 无论如何,很高兴它的“固定”。