获得奇怪的喷油器错误 - 未知的提供商:bProvider< - b

时间:2016-10-27 05:54:44

标签: angularjs angular-ui-bootstrap

编译完代码后,我收到一个我不认识的奇怪错误。通常使用$ injector错误我得到一个特定的模块描述,比如$ uibModal或$ resource等。

有了这个,我就得到这个bProvider< - b。

有谁知道我怎么能解决这个问题,或者有人能告诉我这是指什么?

我正在使用grunt编译和使用uglify ...

vendor.56b5173c.js:5 Error: [$injector:unpr] Unknown provider: bProvider <- b
http://errors.angularjs.org/1.5.8/$injector/unpr?p0=bProvider%20%3C-%20b
    at vendor.56b5173c.js:3
    at vendor.56b5173c.js:4
    at Object.d [as get] (vendor.56b5173c.js:4)
    at vendor.56b5173c.js:4
    at d (vendor.56b5173c.js:4)
    at e (vendor.56b5173c.js:4)
    at Object.g [as invoke] (vendor.56b5173c.js:4)
    at j.instance (vendor.56b5173c.js:5)
    at ui-bootstrap-tpls.min.js:8
    at g (vendor.56b5173c.js:5)

这是我的模态函数的样子:

   var modalInstance = $uibModal.open({
        animation: true,
        backdrop: 'static',
        keyboard: false,
        templateUrl: 'questionsModal.html',
        controller: function($scope, $uibModalInstance, SweetAlert) {

        $scope.close = function() {
            //self.showingExpenses = false;
            $uibModalInstance.close();
            videoId.play();
        };
    }
});

1 个答案:

答案 0 :(得分:0)

缩小js文件时会出现错误:

缩小期间发生的事情是 anotherService参数被缩小为'b'(或其他内容)。

Angular将尝试找到'b'服务,当失败时,它会尝试找到'bProvider'来提供服务。

由于这两个都没有声明,您将收到“未知提供商”错误。

要解决此问题,您应该将所有依赖项更改为字符串:

应避免使用此语法:

angular('myModule').service('myService', function(anotherService) {
  // ...
});

应该遵循:

angular('myModule').service('myService', ['anotherService', function(anotherService) {
        // ...
}]);

这样,当缩小完成时,它不会搞乱依赖注入。

这适用于任何声明,而不仅仅是服务。

this is the source of this answer