【问题标题】:Legend Duplication图例复制
【发布时间】:2015-06-12 19:56:04
【问题描述】:

我有以下实现,它是功能性的。

我想知道如何在我当前的实现中修复图例的副本。请关注fname="NY"

for (var i=0;i<e.series.data.length;i++){
  if (e.series.data[i].valueColor != "" && e.series.data[i].fname != "") {
    color = e.series.data[i].valueColor,
    legendName=e.series.data[i].fname
  }
}

FIDDLE

【问题讨论】:

  • 保留已添加标签的历史记录,并检查该标签是否已添加。
  • 点击小提琴上的 JSHint 按钮可以看到一些编码错误。
  • 如果您对相似的 fname 使用相同的序列号,您的问题就会消失:jsfiddle.net/ezanker/1ost124j/17

标签: javascript kendo-ui kendo-chart


【解决方案1】:

通过记录您绘制图表的数据,您可以看到为 6 个项目调用了代码。如果您将category 添加到标签,您可以看到正在为男性和女性的项目创建图例:

您应该调试实际生成标签的数据结构。

http://jsfiddle.net/xmufd8t0/1/ 在控制台中显示:

您使用此循环的方式似乎存在问题:您总是采用e.series.data 中的最后一个元素。如果你想要第一个非空的fname,你应该在设置legendName 之后有一个break;。否则它会取数组中非空的最后一项。

无论如何 - 要回答您的问题,您需要像 @honerlawd 在他的评论中提到的那样进行重复数据删除。这是重复数据删除修复:

// outside your function, where you have `debugger`
var dedupes = {};

....

// skip labels that have already been added
if (dedupes.hasOwnProperty(legendName)) {
    return;
}
dedupes[legendName] = 1;

【讨论】:

  • 嗨,Ben,你的图片坏了。你能修复并提供小提琴吗?
  • 好的,安德里亚。对于那个很抱歉。我还在小提琴中包含了重复数据删除。
猜你喜欢
  • 1970-01-01
  • 2012-07-06
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多