我正在使用角-nvd3 3绘制饼图。
<nvd3 options="options.chart.options" data="options.chart.data" api="options.chart.api" config="config" events="events"></nvd3>

Javascript
$scope.options.chart = {
options: {
chart: {
type: 'pieChart',
height: 500,
margin: {
top: 0,
right: 40,
bottom: 80,
left: 40
},
x: function(d) {
return d.key;
},
y: function(d) {
return d.y;
},
showLabels: true,
duration: 1500,
labelThreshold: 0.01,
showLegend: true,
lines: {
dispatch: {
elementClick: function(e) {
console.log('click')
},
elementMouseover: function(e) {
console.log('mouseover')
},
elementMouseout: function(e) {
console.log('mouseout')
}
}
}
}
},
data: [{
key: "One",
y: 5
}, {
key: "Two",
y: 2
}, {
key: "Three",
y: 9
}, {
key: "Four",
y: 7
}, {
key: "Five",
y: 4
}, {
key: "Six",
y: 3
}, {
key: "Seven",
y: .5
}],
api: {}
};我需要调用一个事件,当用户点击饼chart.But时,上面的代码是不是working.Please帮助我的?
发布于 2016-10-22 10:59:44
基本上,您在angularjs中使用第三方库以满足您的需求,因此对第三方的任何更改都应该反映在您自己的范围内,因此您应该使用$scope.$apply()。
elementClick: function(e) {
$scope.$apply();
console.log('click')
}我希望这对你有帮助。)
发布于 2018-12-28 17:15:30
我只是在你的javascript代码中替换这个
lines: {
dispatch: {
elementClick: function(e){
$scope.$apply();
console.log('click')
},
elementMouseover: function(e){
$scope.$apply();
console.log('mouseover')
},
elementMouseout: function(e){
$scope.$apply();
console.log('mouseout')
}
}
}
使用
pie: {
dispatch: {
elementClick: function(e){
$scope.$apply();
console.log('click')
},
elementMouseover: function(e){
$scope.$apply();
console.log('mouseover')
},
elementMouseout: function(e){
$scope.$apply();
console.log('mouseout')
}
}
}
正如你所期望的那样。参考网址:在pieChart行上写入单击事件句柄函数
https://stackoverflow.com/questions/40191085
复制相似问题