【问题标题】:nvd3 multibar chart state incorrectly updating on legend toggle?nvd3 多条图表状态在图例切换上错误更新?
【发布时间】:2016-01-02 21:59:59
【问题描述】:

TL;DR:尝试根据控制台日志确定this nvd3 多条形图的单选按钮处于什么状态 - 即我如何可靠地确定当前正在向用户显示哪些数据流?

长版:

我正在尝试找出在 nvd3 多条形图中显示哪些数据流/数组,以便我可以使用与这些流相关的信息更新其他 DOM 节点。唯一的麻烦是chart.state 似乎返回的结果与它应该返回的相反:如果我“关闭”一个流,chart.state.disabled 是该流的true ...除了似乎第一次切换某些东西,当所有chart.state.disabled[i] 流设置为false... 时,该属性的整个行为似乎对我来说没有发挥应有的作用。这是一个错误还是我不明白它应该如何使用?

一些记录三个流状态的代码,例如:

chart.legend.dispatch.on("legendClick", function() {
    var state = chart.state;
  console.log(state.disabled[0] + "," 
    + state.disabled[1] + ","
    + state.disabled[2]);
});

【问题讨论】:

  • 它做的与它应该做的完全相反。这很奇怪。如果它来自最新版本,请在 Github 上打开一个问题。
  • 是的,它来自 1.8,但问题是它不是 完全相反的 - 在第一次切换时发生了一些有趣的事情......

标签: javascript d3.js charts nvd3.js


【解决方案1】:

嗯,通常情况下,我挖了半个小时,无法让它工作,在 SO 上发帖,然后尝试另一种立即奏效的方法:

chart.dispatch.on("stateChange", function(e){
    console.log(JSON.stringify(e.disabled);
}

所以我认为这是 ledgendClick 事件的错误,它没有正确更新图表状态。

【讨论】:

    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多