我正在尝试使用这个插件https://github.com/jtblin/angular-chart.js。我得到了这个错误(我不认为问题出在插件上,而是出在我做注入的方式上!):
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)当我像下面这样全局注入chart.js时,我没有得到任何错误。(继续阅读)
angular.module('my-app', [
            'chart.js'      // <<<<<
            'ui.router',            
            'ngStorage',
            // ...
        ]);
})();但是根据我的理解,建议只在使用它的控制器中注入这个模块,因此当我尝试将它注入到如下所示的控制器中时,我得到了上面的错误。
angular
    .module('my-app')
    .controller('WhateverCtrl', ctrl);
ctrl.$inject = ['chart.js'];     // <<<<<
function ctrl() {
    var vm = this;
// ...但是,如果我将$从注入行删除到ctrl.inject = ['chart.js'];,我确实会消除错误,但chart.js不会工作,因为我猜我必须将它传递给函数function ctrl() {,就像这样的function ctrl(chart.js) {,这当然会因为.而导致错误。
发布于 2018-02-12 09:18:20
通过JGOakley的说明,我能够在angular-chart.js中发现这一行
return angular.module('chart.js', [])
    .provider('ChartJs', ChartJsProvider)要将其包含在控制器中使用,请执行以下操作:
YourModule.$inject = ['ChartJs'];这是一个令人沮丧的发现,因为我采用这一行意味着我可以将其引用为chart
define(['angular', 'chart'], factory);https://stackoverflow.com/questions/35556517
复制相似问题