我正在尝试使用这个插件 https://github.com/jtblin/angular-chart.js . 我收到了这个错误(我认为问题不在于插件,而在于我进行注入(inject)的方式!!):
Error: [$injector:unpr] Unknown provider: chart.jsProvider <- chart.js <- WhateverCtrl
http://errors.angularjs.org/1.3.20/$injector/unpr?p0=chart.jsProvider%20%3C-hart.js%20%3C-%20WhateverCtrl
at http://mega.app/scripts/vendor.js:9895:12
at http://mega.app/scripts/vendor.js:13863:19
at Object.getService [as get] (http://mega.app/scripts/vendor.js:14010:39)
at http://mega.app/scripts/vendor.js:13868:45
at getService (http://mega.app/scripts/vendor.js:14010:39)
at invoke (http://mega.app/scripts/vendor.js:14042:13)
at Object.instantiate (http://mega.app/scripts/vendor.js:14059:27)
at http://mega.app/scripts/vendor.js:18356:28
at http://mega.app/scripts/vendor.js:44696:28
at invokeLinkFn (http://mega.app/scripts/vendor.js:18113:9)
当我像下面这样全局注入(inject) chart.js
时,我没有收到任何错误。 (继续阅读)
angular.module('my-app', [
'chart.js' // <<<<<
'ui.router',
'ngStorage',
// ...
]);
})();
但根据我的理解,建议仅将此模块注入(inject)到使用它的 Controller 中,因此当我尝试将其注入(inject)到如下所示的 Controller 中时,会出现上述错误。
angular
.module('my-app')
.controller('WhateverCtrl', ctrl);
ctrl.$inject = ['chart.js']; // <<<<<
function ctrl() {
var vm = this;
// ...
但是,如果我从 ctrl.inject = ['chart.js'];
的注入(inject)行中删除 $
,我确实摆脱了错误,但是 chart.js
不会工作,因为我想我必须将它传递给函数 function ctrl() {
就像这样 function ctrl(chart.js) {
这当然会因 .
.
最佳答案
由于angular-chart.js
本身就是一个模块,所以必须注入(inject)到模块中,不能注入(inject)到 Controller 中。
关于angularjs - 错误 : [$injector:unpr] Unknown provider: chart.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556517/