Highcharts:无法读取属性';父组';用AngularJS表示未定义的

Highcharts:无法读取属性';父组';用AngularJS表示未定义的,angularjs,html,highcharts,Angularjs,Html,Highcharts,我正在用highChart和angularJS做图表。 我明白这一点 这是我的密码: AngularJS: app.directive('hcPieChart', function () { return { restrict: 'E', template: '<div></div>', scope: { title: '@', data: '=' }, link: function (scope

我正在用highChart和angularJS做图表。 我明白这一点

这是我的密码:

  • AngularJS:

    app.directive('hcPieChart', function () {
    
    return {
        restrict: 'E',
        template: '<div></div>',
        scope: {
            title: '@',
            data: '='
        },
        link: function (scope, element) {
            Highcharts.chart(element[0], {
                chart: {
                    type: 'pie'
                },
                title: {
                    text: scope.title
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: true,
                            format: '<b>{point.name}</b>: {point.percentage:.2f} %'
                        }
                    }
                },
                series: [{
                    data: scope.data
                }]
            });
        }
    };
    });
    
    app.controller('ChartsController', function ($scope) {
    var ids =location.search;
    $scope.Stats=function(){
    
               $http.get(url+"/Stats"+ids) 
                .success(function(data){
                    $scope.Stat = data;
                }).error(function(err,data){
                    console.log("error:" +data);
                }); 
            };      
            $scope.Stats();
    /*$scope.Stat = [{
                  "Validate":17.456789,
                  "NotValidate":2.96296,
                  "Nb_V":2.96296,
                  "Nb_Not_v":2.96296
              }];
     */
           // Sample data for pie chart
                $scope.pieData = [{
                        name: 'CheckLists Socred',
                        y:  $scope.Stat[0].Validate,
                        color: '#00c853'
                    },{
                        name: 'CheckLists Not Socred',
                        y: $scope.Stat[0].NotValidate,
                        color: '#b71c1c'
                }];
    });
    
    app.directive('hcPieChart',函数(){
    返回{
    限制:'E',
    模板:“”,
    范围:{
    标题:“@”,
    数据:'='
    },
    链接:功能(范围、元素){
    Highcharts.chart(元素[0]{
    图表:{
    键入:“馅饼”
    },
    标题:{
    文本:scope.title
    },
    打印选项:{
    馅饼:{
    allowPointSelect:true,
    光标:“指针”,
    数据标签:{
    启用:对,
    格式:'{point.name}:{point.percentage:.2f}%'
    }
    }
    },
    系列:[{
    数据:scope.data
    }]
    });
    }
    };
    });
    app.controller('ChartsController',函数($scope){
    var id=location.search;
    $scope.Stats=function(){
    $http.get(url+“/Stats”+ids)
    .成功(功能(数据){
    $scope.Stat=数据;
    }).错误(函数(错误、数据){
    console.log(“错误:+数据”);
    }); 
    };      
    $scope.Stats();
    /*$scope.Stat=[{
    “验证”:17.456789,
    “未验证”:2.96296,
    “Nb_V”:2.96296,
    “Nb_Not_v”:2.96296
    }];
    */
    //饼图的示例数据
    $scope.pieData=[{
    名称:'检查表Socred',
    y:$scope.Stat[0]。验证,
    颜色:“#00c853”
    },{
    名称:'检查表不符合要求',
    y:$scope.Stat[0]。NotValidate,
    颜色:“#b71c1c”
    }];
    });
    
  • HTML代码:


饼图占位符
这张图表是什么

从图表海报中,我发现以下问题:

未捕获的TypeError:无法读取未定义的属性“parentGroup” 在k.setState(App/Template/highcharts/highcharts.js:392:112) 在App/Template/highcharts/highcharts.js:207:54 at Array.forEach(本机) 在a.each(App/Template/highcharts/highcharts.js:27:360) 在a.Pointer.runPointActions(App/Template/highcharts/highcharts.js:207:32) 在k.onMouseOver(App/Template/highcharts/highcharts.js:389:130) 在SVGGElement.c(App/Template/highcharts/highcharts.js:380:323)


感谢您帮助我,

根据
$scope.Stat
数组对象,您可以作为
$scope.Stat[0]访问每个对象。验证


我也有同样的问题,没有一个答案能帮我解决。几个小时后,我发现我发送给highchart组件作为图表数据馈送的数组导致了问题。 关键是,y轴记录必须命名为“y”,而不是任何其他任意名称

我的数据过去是这样的:

data = [{name: "n1", income: 1491},
{name: "n2", income: 103103},
{name: "n3", income: 126886},
 {name: "n4", income: 88}]
当我把它改成:

data = [{name: "n1", y: 1491},
{name: "n2", y: 103103},
{name: "n3", y: 126886},
 {name: "n4", y: 88}]

问题已解决。

您能在JSFIDLE示例中重现它吗?(您可以从以下内容开始:)我安装了JSFIDLE,但没有工作,请在您使其工作时告诉我。或者你可以使用其他工具,比如“掠夺”等,我认为这不是工具问题。但是在你的script.js是空的代码中有一个问题。。。您的html标记也有问题。谢谢您的回复@,我尝试过这样做,但它返回了此错误消息
无法读取未定义的属性“resConforme”
我在上面的plunker中找不到,请您详细说明错误
$Scope.Stat
它的内容是从angularJS中的另一个函数填充的。如何生成全局变量?我更新了帖子@deep您可以在
$scope.Stats()
之后使用
控制台、日志($scope.Stat)
进行检查并查找错误吗?它显示它的
[object object]
data = [{name: "n1", income: 1491},
{name: "n2", income: 103103},
{name: "n3", income: 126886},
 {name: "n4", income: 88}]
data = [{name: "n1", y: 1491},
{name: "n2", y: 103103},
{name: "n3", y: 126886},
 {name: "n4", y: 88}]