使用angularjs ng repeat创建海图
我已经请求了包含所有关于使用angularjs ng repeat创建海图,angularjs,highcharts,Angularjs,Highcharts,我已经请求了包含所有关于人的信息的json数据,并且我想根据每个人的信息绘制一个高图。我看到了一个解决方案,但是config似乎总是会被最后一个li的配置信息覆盖。有没有办法为每个highchart保留不同的配置 <div data-ng-repeat="a in people"> <h4>Method: {{ a.name }}</h4> <highchart config="chartConfig"></highchart
人的信息的json数据,并且我想根据每个人的信息绘制一个高图。我看到了一个解决方案,但是config
似乎总是会被最后一个li
的配置信息覆盖。有没有办法为每个highchart保留不同的配置
<div data-ng-repeat="a in people">
<h4>Method: {{ a.name }}</h4>
<highchart config="chartConfig"></highchart>
</div>
方法:{a.name}
您可以将局部视图与控制器一起使用。当然要用海图
就像这样,你的主要目标是:
<div data-ng-repeat="person in people">
<h4>Method: {{ person.name }}</h4>
<div data-ng-include="'/partial/chart.html'"></div>
</div>
<div data-ng-controller="ChartController">
<highchart config="chartConfig"></highchart>
</div>
app.controller('ChartController', function ($scope) {
$scope.chartConfig = {
chart: {
type: 'pie'
},
title: {
text: $scope.person.name
},
series: [{
data: $scope.person.chartdata
}]
};
});
希望这有帮助。我遇到了同样的问题。结果是ng repeat为每个项目创建了新的作用域,因此highchart
指令的config
属性应该与ng repeat
中的设置相对应。在您的示例中,由于您通过
重复人员,因此
<highchart config="chartConfig"></highchart>
到
应该有帮助。
我已经创建了一个示例 您必须创建一个列表,然后将每个图表配置添加到该列表中。在图表列表中使用ng repeat:
//See: https://github.com/pablojim/highcharts-ng
var myapp = angular.module('myapp', ["highcharts-ng"]);
myapp.controller('myctrl', function ($scope) {
//The list who will contain each chart
$scope.chartlist = [];
//Chart 1
$scope.chartConfig = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15]
}],
}
//Chart 2
$scope.chartConfig2 = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15, 12, 8, 7]
}],
}
$scope.chartlist.push($scope.chartConfig);
$scope.chartlist.push($scope.chartConfig2);
});
<div ng-app="myapp">
<div ng-controller="myctrl">
<div ng-repeat="char in chartlist" class="row">
<highchart id="chart1" config="char" class="span10"></highchart>
</div>
</div>
然后在html中使用ng在图表列表上重复:
//See: https://github.com/pablojim/highcharts-ng
var myapp = angular.module('myapp', ["highcharts-ng"]);
myapp.controller('myctrl', function ($scope) {
//The list who will contain each chart
$scope.chartlist = [];
//Chart 1
$scope.chartConfig = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15]
}],
}
//Chart 2
$scope.chartConfig2 = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15, 12, 8, 7]
}],
}
$scope.chartlist.push($scope.chartConfig);
$scope.chartlist.push($scope.chartConfig2);
});
<div ng-app="myapp">
<div ng-controller="myctrl">
<div ng-repeat="char in chartlist" class="row">
<highchart id="chart1" config="char" class="span10"></highchart>
</div>
</div>
如果要使用dinamic数据,可以使用foreach创建每个图表配置,在本例中,我在数组“a”中创建了一个图表foreach对象:
$scope.chartlist = [];
var a = [[1, 2],[2,4]];
function chardata(){
for (var i = 0; i < a.length; i++) {
$scope.chartConfig = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: a[i]
}],
}
$scope.chartlist.push($scope.chartConfig);
}
}
chardata();
$scope.chartlist=[];
var a=[[1,2],[2,4]];
函数chardata(){
对于(变量i=0;i
能否在JSFIDLE中将错误复制为完整示例?您的配置/控制器是什么样子的?我的代码与我上面提供的链接大致相同,只是在config
部分中,我希望每次它迭代到li
时都有不同的data
。请复制示例。我已经这样做了。。。但是上一个配置总是会被最后一个配置覆盖,也就是说每个图表看起来都一样。但是通常你会使用这个加上高的图表吗?