使用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
。请复制示例。我已经这样做了。。。但是上一个配置总是会被最后一个配置覆盖,也就是说每个图表看起来都一样。但是通常你会使用这个加上高的图表吗?