我正在尝试在 AngularJS 中为 HighCharts 编写一个指令,它支持两种方式的数据绑定以及图表上的单击事件。
指示:
app.directive('highchart', function () {
return {
restrict: 'E',
template: '<div></div>',
replace: true,
link: function (scope, element, attrs) {
scope.$watch(scope.example_chart, function() {
var chart = JSON.parse(attrs.chart)
element.highcharts(chart);
}
}
}
});
现在,当我这样编写 HTML 时:
<div>
<highchart chart='example_chart'></highchart>
</div>
它支持点击事件,但不支持双向数据绑定。
并且,当它作为表达式传递时:
<div>
<highchart chart='{{example_chart}}'></highchart>
</div>
它支持两种方式的数据绑定,但是用 example_chart 的 JSON 编写的用于单击事件的函数没有被解析,因此无法运行。
因此,建议一种以AngularJS方式处理这两种情况的方法。