编译完代码后,我收到一个我不认识的奇怪错误。通常使用$ 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();
};
}
});
答案 0 :(得分:0)
缩小js文件时会出现错误:
缩小期间发生的事情是 anotherService参数被缩小为'b'(或其他内容)。
Angular将尝试找到'b'服务,当失败时,它会尝试找到'bProvider'来提供服务。
由于这两个都没有声明,您将收到“未知提供商”错误。
要解决此问题,您应该将所有依赖项更改为字符串:
应避免使用此语法:
angular('myModule').service('myService', function(anotherService) {
// ...
});
应该遵循:
angular('myModule').service('myService', ['anotherService', function(anotherService) {
// ...
}]);
这样,当缩小完成时,它不会搞乱依赖注入。
这适用于任何声明,而不仅仅是服务。