0

我在一个角度应用程序中使用 highcharts-ng,我需要在单击 xAxis 标签时运行一个函数,请参阅下面我添加到图表的类别和标签。

目前我可以在标签和警报中添加一个 onclick,但无法让它与 angular 一起使用。

return "<a onclick='alert(1)'>" + this.value + "</a>";

http://pablojim.github.io/highcharts-ng/

当前代码的工作示例在这里。 http://jsfiddle.net/3gLr4vcu/

4

1 回答 1

1

在调用 $compile 之前不会处理 Angular 指令,这通常在 Angular 插入模板时完成,例如指令和 ng-include。如果您自己修改 DOM,除非您自己调用 $compile,否则 Angular 不知道如何处理 HTML。DOM 被 highcharts-ng 修改后,你需要像这样调用 $compile:

$compile(element)(scope)

理想情况下,您希望element是一个尚未 $compiled 的元素(我不确定如果不是这种情况会发生什么),并且scope是向上遍历 DOM 树时遇到的第一个范围。如果不需要范围层次结构,则只需将元素附加到 $rootScope。

您将需要注入 $compile (以及 $rootScope 如果您按照描述使用它)。有关更多信息,请参阅$compile 文档,其中还解释了 $compile 表达式的奇怪语法。如果您发布完整代码,我可以告诉您将 $compile 语句放在哪里以及如何找到要使用的适当范围。

编辑:这是一个有效的 JSFiddle:http: //jsfiddle.net/tsclaus/bpg4556c/

于 2015-03-18T02:12:42.787 回答