1

我正在使用 Angular 进行一些测试,并想尝试使用这个很酷的库来制作测试应用程序,但它不起作用:

ReferenceError:图表未定义 angular-chart.js:13:5 错误:[$injector:modulerr] http://errors.angularjs.org/1.5.0-rc.1/ $injector/modulerr?p0=chartist&p1= %5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.5.0-rc.1%2F%24injector%2Fmodulerr%3Fp0%3Dchart.js

这是我的 HTML 模板:

<!DOCTYPE HTML>
<html ng-app="chartist">
    <head>
      <meta charset="UTF8">
      <!-- Plugins/Frameworks !-->
      <script type="text/javascript" src="plugins/angular.js"></script>
      <script type="text/javascript" src="plugins/angular-route.js"></script>
      <script type="text/javascript" src="plugins/angular-chart.js"></script>

      <!-- JS !-->
      <script type="text/javascript" src="app.js"></script>
      <script type="text/javascript" src="controllers.js"></script>
     <!-- <script type="text/javascript" src="js/directives.js"></script>
      <script type="text/javascript" src="js/services.js"></script> !-->

      <!-- Stylesheets !-->
      <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
      <link rel="stylesheet" type="text/css" href="css/styles.css">
      <link rel="stylesheet" type="text/css" href="css/angular-chart.css">
    </head>
    <body>
        <div ng-view>
        </div>
    </body>
</html>

我通过这种方式在模块中注入依赖项:

var app = angular.module('chartist', ['ngRoute', 'controllers', 'chart.js']);

app.config(['$routeProvider',function($routeProvider) {
    $routeProvider.
    when('/index', {
        templateUrl: 'templates/main.html',
        controller: 'mainCtrl'
    }).
    otherwise({
        redirectTo: '/index'
    });
}]);

为什么我不能使用 Chart.js?是版本问题吗?我会很高兴有人帮忙。

4

1 回答 1

4

如果您仔细查看错误,它确实明确表示

ReferenceError:图表未定义 angular-chart.js:13:5 错误:[$injector:modulerr]

基本上angular-chart.js不能单独使用 API。它只是包装器指令,使其非常容易与 AngularJS 代码兼容。如果您查看 angular-chart.js 代码,您会知道它使用Chart了来自chart.jsAPI 的对象。

要解决您的问题,您需要在之前添加chart.js引用,angular-chart.js因为Chart对象将可用渲染图表。

因此,请在使您的代码正常工作之前添加chart.js cdn reference参考。angular-chart.js

我还希望您阅读 angular-chart.js 入门文档

样品在这里

于 2016-02-16T10:08:05.020 回答