我有一张通过Google Charts Org Chart API呈现的图表。当用户单击节点时,如何获取有关所选节点的数据。我理解它到了#34; getSelection"调用输出选择信息到Javascript控制台:
console.log(chart.getSelection());
当我查看Chrome Javascript控制台时,我可以看到该对象(见下文),但它没有显示图表中节点的任何属性。它只显示行和列。是否有另一个调用来获取节点的实际属性(如名称等)?
答案 0 :(得分:11)
您应该致电chart.getSelection()
,而不是this.
,因为您的函数this
引用了window
,因此您调用window.getSelection()
来返回不相关的对象
以下是如何获取图表选择的完整示例: Google Charts. Interacting With the Chart
上面链接中的正确代码,其中chart
和data
引用全局变量:
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));
}
}
希望这有帮助。