ChartJs Angular 指令 - chart[chartType] 不是函数

ChartJs Angular directive - chart[chartType] is not a function

我在使用 angular 制作简单图表时遇到问题。

我在我的 bower 中使用 "angular-chartjs-directive": "^1.0.0" 设置了图表 JS。根据我的文件来源正确注入。

然后我将其作为我的控制器:

export class MainController {
  constructor ($scope) {
    'ngInject';
    this.createGraph($scope);
  }

  createGraph($scope) {
    var vm = this;
    vm.messages = [{msg: "hello"}];

    var data = {
      labels : ["January","February","March","April","May","June","July"],
      datasets : [
        {
          fillColor : "rgba(220,220,220,0.5)",
          strokeColor : "rgba(220,220,220,1)",
          pointColor : "rgba(220,220,220,1)",
          pointStrokeColor : "#fff",
          data : [65,59,90,81,56,55,40]
        },
        {
          fillColor : "rgba(151,187,205,0.5)",
          strokeColor : "rgba(151,187,205,1)",
          pointColor : "rgba(151,187,205,1)",
          pointStrokeColor : "#fff",
          data : [28,48,40,19,96,27,100]
        }
      ]
    }

    $scope.myChart = data;
  }

}

这是我的主要 html:

<div class="container">
  <chart value="myChart"></chart>
</div>

但是我得到错误:

TypeError: chart[chartType] is not a function

有什么想法吗?

确保您已正确引用库,

演示版

(function(angular) {
  'use strict';
  angular.module('myApp', ['chart.js'])

  .controller('myController', [function() {
    var ctrl = this;
    ctrl.socialChart = {
      type: 'bar',
        labels: ['2006', '2007', '2008', '2009', '2010', '2011', '2012'],
        series: ['Series A', 'Series B'],
        colors: ['#ED402A', '#F0AB05', '#A0B421', '#00A39F'],
        data :  [[65, 59, 80, 81, 56, 55, 40],[28, 48, 40, 19, 86, 27, 90] ]
      }

  }]);

})(window.angular);
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8" />
    <title>Multi Slot Transclude</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-chart.js/1.0.3/angular-chart.min.js"></script>    <script src="app.js"></script>
  </head>

  <body ng-app="myApp" ng-controller="myController as ctrl">
    <canvas id="outreach" class="chart chart-bar" 
        chart-labels="ctrl.socialChart.labels" 
        chart-data="ctrl.socialChart.data" 
        chart-series="ctrl.socialChart.series"
        chart-colors="ctrl.socialChart.colors"
        chart-options="ctrl.socialChart.options"></canvas>      
  </body>

</html>