如何在Google Charts Org Chart小部件中获取有关所选节点的信息?

时间:2014-04-02 17:09:04

标签: charts google-visualization

我有一张通过Google Charts Org Chart API呈现的图表。当用户单击节点时,如何获取有关所选节点的数据。我理解它到了#34; getSelection"调用输出选择信息到Javascript控制台:

 console.log(chart.getSelection());

当我查看Chrome Javascript控制台时,我可以看到该对象(见下文),但它没有显示图表中节点的任何属性。它只显示行和列。是否有另一个调用来获取节点的实际属性(如名称等)?

enter image description here

2 个答案:

答案 0 :(得分:11)

您应该致电chart.getSelection(),而不是this.,因为您的函数this引用了window,因此您调用window.getSelection()来返回不相关的对象

以下是如何获取图表选择的完整示例: Google Charts. Interacting With the Chart

上面链接中的正确代码,其中chartdata引用全局变量:

var selectedItem = chart.getSelection()[0];
if (selectedItem) {
    var selectedValue = data.getValue(selectedItem.row, 0);
    console.log('The user selected ' + selectedValue);
}

答案 1 :(得分:1)

这对我有用。 chart是您的图表的实例,data是您的数据的容器(Google DataTable实例),在页面中组合或通过ajax获取。 使用chart.getSelection()获取当前选择对象后,您可以使用当前行位置data.getValue(row, col)查询数据集,以获取相应的记录。 showCurrentDetailCard()是一个自定义函数,用于显示当前节点的详细信息。

google.visualization.events.addListener(chart, 'select', selectHandler);
function selectHandler() {
    var selection = chart.getSelection();
    if (selection.length > 0) {
        var c = selection[0];
        showCurrentDetailCard(data.getValue(c.row, 0));
    }
}

希望这有帮助。