AngularJS 지시문을 사용하여 Highcharts 그래프를로드 할 수 있습니다. 그러나 지점을 클릭하기위한 이벤트 처리기가 실행되고 있지 않습니다.AngularJS 지시문에서 Highcharts 이벤트를 처리하는 방법은 무엇입니까?
http://plnkr.co/edit/pxU0IsBTrvcEwr2Znf5d?p=preview
JS
var app = angular.module('charts', []);
app.directive('highchart', function() {
return {
restrict: 'E',
template: '<div></div>',
replace: true,
link: function (scope, element, attrs) {
scope.$watch(function() { return attrs.chart; }, function() {
if(!attrs.chart) return;
var chart = JSON.parse(attrs.chart);
$(element[0]).highcharts(chart);
});
}
}
});
function Ctrl($scope) {
$scope.example_chart = {
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
alert ('Category: '+ this.category +', value: '+ this.y);
}
}
}
}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
};
}
HTML은
<section ng-app='charts'>
<div ng-controller="Ctrl">
<highchart chart='{{example_chart}}'></highchart>
</div>
</section>
내가 AngularJS와 멍청한 놈의 비트 만 $ '로 변경 (요소는 [0]) highcharts이 (get_chart()) 것으로 나타났습니다 생각하며 $ 시계가 있습니다에'이 작동합니다.. 근본 원인을 파악하는 데 도움이 될 수 있습니다. –