未定义显示错误图表的Angular chart.js

时间:2015-10-21 02:50:52

标签: angularjs charts angular-chart

我是棱角分明的新手。当我尝试执行以下代码时。它在控制台中显示一些错误。 ReferenceError:图表未定义。我无法理解错误。所以有人请帮助我。如果问题不正确,请更正问题

我的Html代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>school</title>
        <link rel="stylesheet" href="style.css" type="text/css"/>
        <link rel="stylesheet" href="fonts/text-font/css/font_icon.css" type="text/css"/>
        <meta name="viewport" content="width=device-width; initial-scale=1.0" />
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <!-- angular -->
        <script type="text/javascript" src="js/angular/angular.min.js"></script>
        <!-- angular chart -->
        <link rel="stylesheet" href="js/angular/angular-chart.css" type="text/css"/>
        <script type="text/javascript" src="js/angular/angular-chart.min.js"></script><br />
        <script type="text/javascript" src="js/angular/angular.js"></script>

        <script type="text/javascript" src="js/script.js"></script>
    </head>
    <body ng-app="app">
        <div ng-controller="LineCtrl">
                <canvas id="line" class="chart chart-line" chart-data="data" chart-labels="labels" 
                chart-legend="true" chart-series="series" chart-click="onClick"></canvas> 

            </div>
    </body >
</html>

my angular.js:

angular.module("app", ["chart.js"]) 
  // Optional configuration
  .config(['ChartJsProvider', function (ChartJsProvider) {
    // Configure all charts
    ChartJsProvider.setOptions({
      colours: ['#FF5252', '#FF8A80'],
      responsive: false
    });
    // Configure all line charts
    ChartJsProvider.setOptions('Line', {
      datasetFill: false
    });
  }])
  .controller("LineCtrl", ['$scope', '$timeout', function ($scope, $timeout) {

  $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]
  ];
  $scope.onClick = function (points, evt) {
    console.log(points, evt);
  };

  // Simulate async data update
  $timeout(function () {
    $scope.data = [
      [28, 48, 40, 19, 86, 27, 90],
      [65, 59, 80, 81, 56, 55, 40]
    ];
  }, 3000);
}]);

5 个答案:

答案 0 :(得分:12)

您需要添加chart.js库的引用以使您的图表正常工作。由于angular-chart.js在内部使用Chart库的chart.js对象。

答案 1 :(得分:4)

我把我在评论中提到的更正,ng-app和ng-directives丢失了。

<强>的index.html

angular.module("app", ["chart.js"]) // here i couldn't understand about chart.js fil
  // Optional configuration
  .config(['ChartJsProvider', function (ChartJsProvider) {
    // Configure all charts
    ChartJsProvider.setOptions({
      colours: ['#FF5252', '#FF8A80'],
      responsive: false
    });
    // Configure all line charts
    ChartJsProvider.setOptions('Line', {
      datasetFill: false
    });
  }])
  .controller("LineCtrl", ['$scope', '$timeout', function ($scope, $timeout) {

  $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]
  ];
  $scope.onClick = function (points, evt) {
    console.log(points, evt);
  };

  // Simulate async data update
  $timeout(function () {
    $scope.data = [
      [28, 48, 40, 19, 86, 27, 90],
      [65, 59, 80, 81, 56, 55, 40]
    ];
  }, 3000);
}]);

<强>的script.js

[]

我为它做了一个jsbin

答案 2 :(得分:1)

这可能是chart.min.js和angular-chart.min.js文件的顺序问题。实际上angular-chart.min.js需要chart.min.js依赖。 angular-chart.min.js检查chart.min.js,如果放置chart.min.js,则会产生错误。

<script src="/lib/chart.js/dist/Chart.min.js"></script>
<script src="/lib/angular-chart.js/dist/angular-chart.min.js"></script>

答案 3 :(得分:0)

在遵循Angular Chart官方文档(http://jtblin.github.io/angular-chart.js/)之后,我遇到了类似的问题(同样的错误)。在我的情况下,唯一缺少的东西(并没有在那里提到)是对&#34; Chart,js&#34;的引用。在&#34; index.html&#34;。

<script src="bower_components/Chart.js/Chart.min.js"></script>

答案 4 :(得分:0)

这对我有用:

getOrCreateThreadId