我在使用angular获取简单图表时遇到了问题。
我在我的凉亭内使用“angular-chartjs-directive”设置图表JS:“^ 1.0.0”。根据我的文件来源正确注入。
然后我将此作为我的控制者:
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
有什么想法吗?
答案 0 :(得分:0)
确保您已正确引用库
<强>样本强>
(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);
&#13;
<!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>
&#13;