我有以下代码,我想要做的是使用按钮按下的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中第二次渲染后放置的任何东西都不起作用。因此,按钮按钮中的第二次渲染后的警报(“测试”)不执行任何操作。我不太清楚为什么。
答案 0 :(得分:0)
好吧,出于某种奇怪的原因,当我在按钮按下时使用policeResChart.fullRender();
时,这是有效的。有人可以解释原因吗?我不完全理解为什么render()
不起作用。
无论如何,很高兴它的“固定”。