剑道图动态系列

时间:2013-03-28 15:18:56

标签: charts kendo-ui series

我目前对我的剑道图表有两个步骤。第一个过程是允许用户在图表上选择他们想要的数据集(系列)。然后他们选择一个模板。模板是图形设置ex(颜色主题,图表类型线,条形,圆形等)。

目前,如果用户选择他们想要的数据集,我会将系列信息返回到图表,然后使用模板设置填充图表。

我还允许用户动态更改模板设置。例如,条形图到Line,Area,Circle等。他们也可以改变主题。设置第一个加载时,问题就出现了,我传递的系列信息是:

{
  [name: "string", data: []], 
  [name: "string", data: []]
}

当我在模板上进行更改后检查系列对象时,我看到以下内容已添加到对象中:

{
  [name: "string",
   data: [],
   type: "area",
   color: "ff6800",
   ect...   
  ],
  [name: "string",
   data: [],
   type: "area",
   color: "ff6800",
   ect...   
  ],
}

问题在于我可以将对象类型修改为正确的选定类型。我甚至可以将颜色值更改为每个系列的不同颜色。但是,因为我使用的是剑道主题,图表背景会发生变化,但系列颜色不会匹配。我可以想出一个功能来选择图表的背景颜色,然后选择你想要的系列颜色。但如果可能的话,我宁愿使用剑道方法。

我也认为如果我清除那个对象,只使用我传递的设置和数据就可以了。但是,我不希望每次进行页面级别更改时都要访问数据库,并且我也注意到即使我创建临时对象,我的对象也会被赋予所有图表属性。

提前谢谢!

1 个答案:

答案 0 :(得分:4)

我在剑道论坛上问了这个问题并收到了以下答案。

在传递图表选项之前,您需要保留图表选项的深层副本。这样,您只需使用原始选项即可重新创建图表。

var options = { ... };

$("#chart").kendoChart(
     // No side effects on options
     $.extend(true, {}, options)
 );

如果你看一下这个例子,这样做是有意义的,因为那时你可以在页面上出现不同的事件时修改你的图表。例如,当我想要更改主题或图表类型时。我可以修改:

options.seriesDefaults = { type = "bar" };

以下是Tsvetomir提供的示例的链接:http://jsbin.com/ulohof/1/edit

以下是关于剑道论坛问题的链接:http://www.kendoui.com/forums/dataviz/chart/kendo-chart-dynamic-series.aspx