簡體   English   中英

錯誤:[$ injector:nomod]模塊“ chart.js”不可用

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

我正在嘗試在應用程序中使用angular-chart.js ,盡管出現以下錯誤:

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

我遵循了其他問題的建議,在HTML文件中的angular-chart.js之前包含Chart.js,盡管這對我不起作用。

這是我安裝的庫的版本:

角度圖,chart.js和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) { }

有什么建議么? 謝謝!

該錯誤似乎表明在執行腳本之前未加載angular-chart.js,您需要在加載angular和chart.js之后但在執行腳本之前先加載它。

Nit:css應該加載在html的頂部,而javascript文件應該加載在body close標簽之后的底部。

您可以使用此模板提供完整的復制步驟嗎?

我不熟悉angular-chart庫,但是到目前為止我發現了一些問題。 首先,Angular-chart的腳本標簽具有一個雜散的“ xmlns”屬性,該屬性必須來自xml文檔:

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

它可能不會造成任何傷害,但是我將其刪除只是為了確保您不會引起瀏覽器的痛苦。

接下來,你說

我正在嘗試將chart.js模塊注入到我的控制器中

chart.js模塊僅包含指令。 您無法真正將其注入到控制器中,只能在模塊級別聲明依賴項。 GitHub上的自述文件針對這組指令提供了一個很好的基本設置示例。 您可以將一個工廠ChartJsFactory注入到控制器中,但是看起來它似乎主要是由指令使用的。

我注意到的第二件事是,您在控制器中包括了對$ routeParams的依賴關系,但是您的模塊DeviceCtrl沒有對ngRoute的依賴關系。 您可以在模塊的配置中包括angular-route.js和'ngRoute'的依賴項,也可以刪除$ routeParams。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM