javascript - 类型错误 : Cannot read property 'datasets' of undefined - Angular Chart

标签 javascript jquery angularjs charts angular-chart

我正在尝试使用 Angular 图显示图表。但我收到以下错误:

类型错误:无法读取未定义的属性“数据集” 在 Object.i.Type.extend.initialize ( http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1-beta.2/Chart.min.js:9:27506 ) 在 Object.e.Type ( http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1-beta.2/Chart.min.js:9:9713 ) 在 Object.s ( http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1-beta.2/Chart.min.js:9:12974 ) at e.(匿名函数)[as Bar] ( http://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1-beta.2/Chart.min.js:9:13316 )

我的代码:

app.controller('graphController', ['$scope', '$kinvey','$location', function($scope, $kinvey, $location) {
$scope.popula = function(){ 
  var query = new $kinvey.Query();   
  query.equalTo('idColetor', 659238569);                          
  query.descending('tsmilliseconds').limit(7);
  var promise = $kinvey.DataStore.find('dataBase', query); 
  promise.then(function(response) {   
  arrayVelocidade = [];
  for(var j = response.length - 1; j >= 0 ; j--) {          
      arrayVelocidade.push(response[j].veloc);    
    }
  drawLineChart(arrayVelocidade);


});
};


function drawLineChart(arrayVelocidade){

  $scope.lineChartData = {
      labels: ["30", "25", "20", "15", "10", "05", "0"],
      datasets: [
      {
        label: "Velocidade",
        fillColor: "rgba(220,220,220,0.2)",
        strokeColor: "rgba(220,220,220,1)",
        pointColor: "rgba(220,220,220,1)",
        pointStrokeColor: "#fff",
        pointHighlightFill: "#fff",
        pointHighlightStroke: "rgba(220,220,220,1)",
        data: arrayVelocidade
      }
      ]
    };
    $scope.activeData = $scope.lineChartData;
}



}
]);

在我调用的索引页中:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.js"></script>
<script src="http://da189i1jfloii.cloudfront.net/js/kinvey-angular-1.5.1.min.js"></script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1-beta.2/Chart.min.js"></script>
<script type="text/javascript" src="dist/angular-chartjs.min.js"></script>
<script src="js/jquery.js"></script>

任何信息都会有帮助。谢谢!

最佳答案

angular-chart 期望输入数据采用某种格式(与 Chart.js 不完全相同)。尝试将输入数据格式化为类似于 http://jtblin.github.io/angular-chart.js/ 中的示例。

angular.module("app", ["chart.js"]).controller("LineCtrl", function ($scope) {

  $scope.labels = ["January", "February", "March", "April", "May", "June", "July"];
  $scope.series = ['Series A', 'Series B'];
  $scope.data = [
    [65, 59, 80, 81, 56, 55, 40],
    [28, 48, 40, 19, 86, 27, 90]
  ];
});

请注意,data 只是一个数组数组,而不是像 Chart.js 中那样的对象,并且 labels 是一个单独的数组。

关于javascript - 类型错误 : Cannot read property 'datasets' of undefined - Angular Chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971788/

相关文章:

jquery - 如何检查文本字段是否只读

javascript - 从屏幕上异步删除 JSON 对象

javascript - 使用文本节点将 JSON 数据渲染到准备好的 HTML 页面中

javascript - Angularjs 指令将变量传递给子指令

javascript - HTML Canvas 仅在浏览器调整大小后触发?

javascript - 查询引用文档的字段

javascript - 这种带有css和html5的静态背景切换过渡的名称

javascript - 这个新的重复拖放指令有什么问题?

angularjs - 集成 TomCat 和 Node 服务器

javascript - 从列表复制到文本区域但防止重复