当我从数据库中获取轴值时,Highchart不起作用

时间:2018-05-03 12:20:52

标签: angularjs asp.net-web-api highcharts

我使用ASP .Net web api从数据库中获取数据,并尝试使用Highchart制作派生数据的图表。当我以下列形式给出轴值时:

    xAxis: {
                categories:["Sabab","Sunjare","Ety"]
            },

 series: [{
             data: [20,30,40]
         }]

工作正常。但是当我通过从数据库派生的数据初始化xAxis的类别和系列数据时,则不会形成图形。 这是角度控制器代码。

app.controller('chartController', function ($scope,chartService) {



    loadStudentName();

    function loadStudentName() {
        var promiseget = chartService.getStudentName();

        promiseget.then(function (p1) { $scope.StudentNames = p1.data },
            function (errorP1) {
                alert("Error Occurred");
            });
    }


    loadTotalMarks();

    function loadTotalMarks() {
        var promiseget = chartService.getTotalMarks();

        promiseget.then(function (p1) { $scope.TotalMarks = p1.data },
            function (errorP1) {
                alert("Error occured");
            }
        );
    }


    Highcharts.chart('container', {
        chart: {
            type: 'column'
        },

        xAxis: {
            categories:$scope.StudentNames
        },
        yAxis: {
            title: {
                text:"Marks"
            },

        },


        series: [{
            name: "Marks",
            data: $scope.TotalMarks
        }]
    });



});

数据库中$scope.StudentNames填充了["Ety","Sabab","Sunjare","Sadia"],数据库中填充了$scope.TotalMarks [393,390,394,341],但图形尚未形成。

1 个答案:

答案 0 :(得分:0)

您需要在更新数据后刷新您的高价图表:

  1. 监视两个数据对象并执行chart.redraw();如果 它改变了
  2. 在更新数据后调用重绘方法 在承诺里面。
  3. 我建议创建一个指令,该指令接受高图配置对象并监视更改然后重绘图表,这样您就可以重复使用它。