如何使用angularjs和Typescript向google图表添加事件?

如何使用angularjs和Typescript向google图表添加事件?,angularjs,charts,google-visualization,Angularjs,Charts,Google Visualization,我正在使用柱形图,并希望在图表中的单列上添加单击事件。 我使用的是angularjs和指令以及打字脚本 以下是我如何初始化图表: $scope.chart = {}; $scope.chart.type = "ColumnChart"; $scope.chart.cssStyle = ""; $scope.$watch("data", () => { $scope.chart.data = { //column and row definition }; }); $scope

我正在使用柱形图,并希望在图表中的单列上添加单击事件。 我使用的是angularjs和指令以及打字脚本

以下是我如何初始化图表:

$scope.chart = {};
$scope.chart.type = "ColumnChart";
$scope.chart.cssStyle = "";

$scope.$watch("data", () => {
$scope.chart.data = {
   //column and row definition
   };
});
$scope.chart.options = {
   //some chart options
   enableInteractivity: true,
   displayExactValues: true,
};
$scope.chart.formatters = {};
google.visualization.events.addListener(chart, 'select', () => {
   alert("select event");
});

事件从不被触发,也不会显示任何错误。我忘记图表初始化了吗?

你把谷歌图表API和指令混合得太多了。范围上的图表对象不是Google Charts API识别的对象。您可以将on select属性与角度谷歌图表一起使用,以实现您想要的效果

$scope.selectHandler = function (selectedItem) {
  // Your logic here.
};

<!-- selectedItem is injected by name used here, so must be spelled correctly. -->
<div google-chart chart="chart" on-select="selectHandler(selectedItem)"></div>
$scope.selectHandler=函数(selectedItem){
//你的逻辑在这里。
};
你可以在我的博客上找到一个更实际的例子


您可以将放置在scope上的图表对象视为构建google图表的模板,但它本身不被底层库识别。但是,当您深入研究源代码时,所有的概念都非常接近。它们只是在对象引用上不匹配。

你把谷歌图表API和指令混合得太多了。范围上的图表对象不是Google Charts API识别的对象。您可以将on select属性与角度谷歌图表一起使用,以实现您想要的效果

$scope.selectHandler = function (selectedItem) {
  // Your logic here.
};

<!-- selectedItem is injected by name used here, so must be spelled correctly. -->
<div google-chart chart="chart" on-select="selectHandler(selectedItem)"></div>
$scope.selectHandler=函数(selectedItem){
//你的逻辑在这里。
};
你可以在我的博客上找到一个更实际的例子


您可以将放置在scope上的图表对象视为构建google图表的模板,但它本身不被底层库识别。但是,当您深入研究源代码时,所有的概念都非常接近。它们只是不符合对象引用。

谢谢,这正是我所需要的。它起作用了!:-)谢谢,这正是我所需要的。它起作用了!:-)我只需要删除addListener调用并从@Balrog30的答案中添加selectHandler函数。我只需要删除addListener调用并从@Balrog30的答案中添加selectHandler函数。