nvd3 中的事件处理

Event Handling in nvd3

我正在使用 nvd3 并尝试在单击图表时添加事件处理。但是我在实施它时遇到了一些问题,由于缺少 nvd3 的文档,我无法获得解决方案。我按照这个 link,但我仍然在控制台中收到以下错误:

ReferenceError: chart is not defined

任何人都可以告诉我我遗漏了什么或 nvd3 中事件处理的任何最佳解决方案。

可能你的问题是图形变量的名称; 我给你做了一个fiddle。 在我的示例中,"chart" 是图形变量的名称。检查你的情况也是一样的。

var chart = nv.models.multiBarChart();

无论如何,fiddle你可以看到完整的代码。如果您单击某个项目,您可以在控制台中看到消息。

http://jsfiddle.net/g952qb5c/

按照佐丹奴的建议,我查找了图的名称和调度事件。然后我在这样的选项中添加了这些事件监听器。

注意:此解决方案适用于 nvd3 和 angular。

$scope.options2 = {
        chart: {
            type: 'pieChart',
            height: 500,
            x: function(d){return d.key;},
            y: function(d){return d.y;},
            showLabels: true,
            duration: 500,
            labelThreshold: 0.01,
            labelSunbeamLayout: true,
            legend: {
                margin: {
                    top: 5,
                    right: 35,
                    bottom: 5,
                    left: 0
                }
            },
            pie:{
                dispatch: {
                    elementClick : function(e){
                        console.log('element: ' + e.value);
                        console.log(e);
                    }
                }
            }
        }
    };

希望这对其他人也有帮助。