错误:[$ injector:nomod]模块'chart.js'不可用

时间:2016-06-19 12:38:38

标签: angularjs angular-chart

我正在尝试在我的应用程序中使用angular-chart.js,但我收到以下错误:

Error: [$injector:nomod] Module 'chart.js' is not available

我已经按照其他问题的建议在html文件中包含angular-chart.js之前的Chart.js,尽管这对我不起作用。

以下是我安装的库的版本:

Versions of angular chart, chart.js and angular

这是我的目录结构

 app/
 ----libs/
 ------Chart.js/
 ----------src/
 ------------chart.js
 ------angular-chart.js/
 --------dist/
 ----------angular-chart.js
 ----------angular-chart.css
 --index.html

以下是我在 index.html 中使用bower安装的库的链接:

<!-- Import the graph library -->
<script src="../libs/Chart.js/src/chart.js"></script>
<script src="../libs/angular-chart.js/dist/angular-chart.js" xmlns="http://www.w3.org/1999/html"></script>

<!-- CSS too -->
<link rel="stylesheet" href="../libs/angular-chart.js/dist/angular-chart.css">

我正在尝试将chart.js模块注入我的控制器,如下所示:

angular.module('DeviceCtrl', ['chart.js']).controller('DeviceController', function($routeParams, $scope, $http) { }

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

错误似乎表明在执行脚本之前未加载angular-chart.js,您需要在加载angular和chart.js之后但在执行脚本之前加载它。

Nit:css应该加载到html的顶部,而javascript文件应该在body关闭标记之后加载到底部。

您可以使用此template

提供完整的重复步骤

答案 1 :(得分:0)

我不熟悉角度图表库,但我发现到目前为止您遇到的一些问题。首先,角度图表的脚本标签有一个流浪的&#34; xmlns&#34;必须来自xml文档的属性:

<script src="../libs/angular-chart.js/dist/angular-chart.js" xmlns="http://www.w3.org/1999/html"></script>

它可能不会伤害任何东西,但我会删除它只是为了确保您不会让浏览器感到胃灼热。

接下来,您说明

  

我正在尝试将chart.js模块注入我的控制器

chart.js模块只包含指令。您无法将其注入控制器,只能在模块级别说明依赖关系。 GitHub上的readme对这组指令有一个很好的基本设置示例。有一个工厂,ChartJsFactory,你可以注入一个控制器,但看起来它主要是指令使用。

接下来我注意到你在控制器中包含$ routeParams的依赖项,但是你的模块DeviceCtrl并没有包含ngRoute。你可以包括angular-route.js,以及&nbsp; ngRoute&#39;在模块的配置中,或删除$ routeParams。