【问题标题】:Connect an Angular Bar chart to endpoint data将 Angular 条形图连接到端点数据
【发布时间】:2016-11-22 08:53:36
【问题描述】:

我是 Angular Charts 的新手,不知道如何将端点 JSON 数据连接到图表。我按照AngularCharts 中的说明使用粗略数据填充条形图。 HTML :

<div class="row">
    <div class="span12">
        <div class="widget widget-nopad">
            <div class="widget-header">
                <i class="icon-list-alt"></i>
                <h3> Skills</h3>
            </div>
            <!-- /widget-header -->
            <div class="widget-content" style="padding:5px;" ng-controller="BarCtrl">
            <canvas id="bar" class="chart chart-bar"
                        chart-data="data" chart-labels="labels"  chart-series="series">

                </canvas></div>
        </div>
    </div>


</div>

控制器:

myApp.controller('BarCtrl', ['$scope', 'reportServices', function ($scope, reportServices) {
    reportServices.getSkillsReport().then(function (result) {

        $scope.data = result.data;

        $scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
    $scope.series = ['Series A', 'Series B'];

    $scope.data = [
      [65, 59, 80, 81, 56, 55, 40],
      [28, 48, 40, 19, 86, 27, 90]
    ];


    });
}]);

端点的输出是:

{
  ".Net": 4,
  "Java": 3,
  "JavaScript": 5,
  "ASP.NET": 2,
  "Banking": 2,
  "Personal Skills": 6
}

谁能告诉我如何将此数据连接到当前的默认条形图?我也不想要图表中的第二个系列。

【问题讨论】:

    标签: angularjs angular-chart


    【解决方案1】:

    假设,您的端点对象是 myobject :

    var myobject = { ".Net": 4, "Java": 3, "JavaScript": 5, "ASP.NET": 2,"Banking": 2,"Personal Skills": 6}
    
    $scope.labels = [];
    $scope.series = ['Series A'];
    
    $scope.data = []; 
    $scope.datavalues = [];
    
    for(i in myobject) {
       $scope.labels.push(i)
       $scope.datavlues.push(myobject[i])
    }
    $scope.data = [$scope.datavalues]
    

    【讨论】:

    • 在这样做之后图表就消失了。 myApp.controller('BarCtrl', ['$scope', 'reportServices', function ($scope, reportServices) { reportServices.getSkillsReport().then(function (result) { $scope.chartValues = result.data; $scope .labels = []; $scope.series = ['Series A']; $scope.data = []; $scope.datavalues = []; for (i in chartValues) { $scope.labels.push(i) $scope.datavlues.push(myobject[i]) } $scope.data = [$scope.datavalues] }); }]);
    • 您在代码中的 for 循环中保留了“myobject”。将其更改为 $scope.chartValues
    • 也在 for 循环中 - for (i in $scope.chartValues)
    • 感谢工作。我还必须声明“我”才能让它运行:)
    • 有没有我可以在 X 轴和 Y 轴上放置标签以便于识别它们?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多