AngularJS在向工厂注入常量时出现未知提供商错误
AngularJS Getting Unknown provider error injecting a constant into a factory
在试图将constant
注入正在注入controller
的factory
时,我得到了一个角度的unknown provider
错误。
angular.js:13920 Error: [$injector:unpr] Unknown provider: estimatingUtilitiesSettingsProvider <- estimatingUtilitiesSettings <- templateResolutionDataService
app.js:
angular
.module('main', [
'ngResource'
, 'angulartics'
, 'angulartics.appinsights'
, 'envModule'
, 'gettext'
, 'webModule'
, 'serviceModule'
])
.controller('testPageController', [
'$scope'
, '$http'
, '$resource'
, 'envModule'
, 'gettext'
, 'templateResolutionDataService'
, 'profileTemplateResolutionDataService'
, 'templateResolutionDataWithMultipleTemplatesService'
, 'partResolutionDataService'
, 'featureToggleService'
, 'recommendedResolutionDataService'
, 'profiledResolutionDataService'
, function ($scope, $http, $resource, envModule, gettext
, templateResolutionDataService
, profileTemplateResolutionDataService
, templateResolutionDataWithMultipleTemplatesService
, partResolutionDataService
, featureToggleService, recommendedResolutionDataService
, profiledResolutionDataService) {
//contents
}]);
templateResolutionDataService.js:
(function (angular) {
'use strict';
angular
.module('serviceModule', [
'webModule'
])
.factory('templateResolutionDataService', [
'gettext'
, 'estimateUtilitiesExtensionService'
, 'partResDataServiceSettings'
, 'estimatingUtilitiesSettings'
, function (gettext, estimatingUtilitiesService
, partResDataServiceSettings, estimatingUtilitiesSettings) {
}
]);
})(window.angular);
webModule.js:
(function (angular) {
'use strict';
angular
.module('webModule', [
'ng'
, 'ngResource'
,'miEnvironment'
,'gettext'
,'analyticsFilters'
,'touchEvents'
,'flyoutModule'
])
.constant('estimatingUtilitiesSettings', {
SourceKeys: {
'Template': 1
,'Part': 2
}
});
})(window.angular);
我一直在调整继承顺序,但似乎没有解决这个问题。有人知道我做错了什么吗?或者我该如何识别和解决它?
EDIT:注释掉常量的声明(并用适当的值手动替换它的引用)确实允许应用程序继续通过这一点,所以对于templateResolutionData.js
来说,这是唯一阻止其执行的事情。
我已经简化了你的代码,并在小提琴上运行它没有错误
angular.module('main', ['webModule', 'serviceModule'])
.controller('testPageController', [
'$scope', '$http', 'templateResolutionDataService',
function($scope, $http, templateResolutionDataService) {
//contents
$scope.setting = templateResolutionDataService;
}
]);
(function(angular) {
'use strict';
angular.module('serviceModule', [
'webModule'
])
.factory('templateResolutionDataService', ['estimatingUtilitiesSettings',
function(estimatingUtilitiesSettings) {
var getSetting = function() {
return estimatingUtilitiesSettings.SourceKeys;
}
return getSetting();
}
]);
})(window.angular);
(function(angular) {
'use strict';
angular.module('webModule', [])
.constant('estimatingUtilitiesSettings', {
SourceKeys: {
'Template': 1,
'Part': 2
}
});
})(window.angular);
您将miEstimatingUtilitiesSettings
误命名为EstimatingUtilitiesSettings
相关文章:
- 角度模态服务未知提供商
- JsFiddle:未知提供商:$intervalProvider <- $interval
- 工厂和控制器,未知提供商
- 未知提供商:$resourceProvider - AngularJS
- 未知提供商:捆绑后$resourceProvider
- AngularJS + RequireJS.未知提供商:$routeProvider
- 未知提供商AngularJs在添加“时”;.运行”;
- Angular未知提供商错误
- AngularJS错误:未知提供商
- 为什么我得到$injector:unpr(未知提供商)在这个单页应用程序
- 在angularJS中使用angular-cached-resource的未知提供商
- Angularjs、Typescript、Uglify和static $inject:未知提供商
- Angular $injector——为Angular提供的未知提供商's $timeout
- 未知提供商:uniqueFilterProvider,在Angular.js中使用唯一过滤器
- Angularjs、Typescript、Uglify实例化myApp模块失败未知提供商:a
- 错误:[$injector:unpr]未知提供商:ngCsv <- ngCsv <- dynamicDemoContro
- 使用Jasmine在AngularJS中测试服务时,未知提供商
- 在angularJS中创建过滤器时为angular提供的未知提供商
- 获取"错误:[$injector:unpr]未知提供商"错误
- AngularJS错误:[$injector:unpr]未知提供商:$achorScrollProvider <- $a