我在我的应用程序中使用highcharts-ng和 angular js。对于一个简单的案例,我可以调用一个休息服务并使用它来绘制图表。但在我的场景中,使用相同的表单输入,我需要调用两个休息服务并根据两个响应同时绘制两个图表(即)第一个图与第一个响应和第二个图与另一个响应。我尝试了一些情况,但我只能绘制一个图形,如果我尝试绘制另一个图形,整个页面会重置。关于如何做的任何帮助。
问问题
2640 次
2 回答
3
这是我解决您的问题的方法。我没问题。
第一:在服务中创建drawChart
angular.module('chartApp')
.factory('drawChart', function () {
return {
lineChart: function (args) {
// Draw charts
var charts = [],
chart;
// agrs: this is variable mutable
var maps = args.maps,
color = args.color,
width = args.width,
height = args.height,
lablesY = args.lablesY,
lablesX = args.lablesX,
title = args.title;
angular.forEach(maps, function (map) {
chart = {
animation: true,
options: {
legend: {
enabled: false
}
},
title: title,
series: [{
data: map,
enableMouseTracking: false,
color: color,
marker: {
enabled: false
}
}],
loading: false,
yAxis: {
currentMin: 0,
currentMax: 100,
lineColor: '#cacaca',
lineWidth: 1,
gridLineWidth: null,
labels: lablesY,
title: null
},
xAxis: {
currentMin: 0,
labels: lablesX,
lineColor: '#cacaca',
lineWidth: 1,
tickWidth: 0
},
size: {
width: width,
height: height
}
};
charts.push(chart);
});
return charts;
}
};
});
第二次在你的控制器上调用它
// Draw charts
var chartArgs = {
maps: $scope.maps,
color: '#0ec679',
width: 245,
height: 125,
lablesY: {
enabled: false,
},
lablesX: {
enabled: false,
},
title: {
text: ''
}
};
if (Object.keys($scope.maps).length != 0) {
$scope.chartMaps = drawChart.lineChart(chartArgs);
}
第三视角
<highchart config="chartMaps[$index]"></highchart>
于 2015-02-03T06:09:19.517 回答
0
这是我的解决方案:
Javascript:
// first chart
$scope.chartConfig1 = {
chart: {
type: 'bar'
},
title: {
text: 'Fruit Consumption'
}, ...
};
// second chart
$scope.chartConfig2 = {
chart: {
type: 'line'
},
title: {
text: 'Fruit Consumption'
}, ...
};
HTML:
<!-- first chart -->
<div id="chartA">
<highchart id="chart1" config="chartConfig1"></highchart>
</div>
<!-- second chart -->
<div id="chartB">
<highchart id="chart2" config="chartConfig2"></highchart>
</div>
你可以无限地重复范式
于 2016-09-23T22:59:43.767 回答