Javascript 角度-提供程序中的未知提供程序
我有一个奇怪的问题,不知何故我自己的提供商没有正确地注入我的应用程序 这是我的提供商:Javascript 角度-提供程序中的未知提供程序,javascript,angularjs,coffeescript,angularjs-service,Javascript,Angularjs,Coffeescript,Angularjs Service,我有一个奇怪的问题,不知何故我自己的提供商没有正确地注入我的应用程序 这是我的提供商: angular.module '1425App' .provider 'OData',[() -> @_baseUrl = '' return { setBaseUrl: (value) -> @_baseUrl = value return $get: ['$http', '$q',
angular.module '1425App'
.provider 'OData',[() ->
@_baseUrl = ''
return {
setBaseUrl: (value) ->
@_baseUrl = value
return
$get: ['$http', '$q', ($http, $q) ->
return {
getAll: (resource) ->
dfd = $q.defer()
$http.get("#{@_baseUrl}/#{resource}").success (res) ->
console.log res
dfd.resolve()
return
return dfd.promise
}
]
}
]
这是我的应用程序+配置块:
angular.module('1425App', [
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'angular-loading-bar',
'ngAnimate',
'toaster',
'ui.gravatar',
'ngFitText',
'google-maps',
'mm.foundation',
'restangular',
'ui.select2',
'ngTable',
'ngGrid',
'ngCsv',
'ui.date',
'ngDragDrop',
'ui.sortable'
])
.config ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider, cfpLoadingBarProvider, baseUrl, ODataProvider) ->
$httpProvider.interceptors.push('httpInterceptor')
ODataProvider.setBaseUrl(baseUrl + '/odata/')
cfpLoadingBarProvider.includeSpinner = false
...
我收到以下错误:
未捕获错误:[$injector:modulerr]未能实例化模块
1425由于以下原因导致的应用程序:[$injector:unpr]未知提供程序:
ODataProvider
这让我相信,将提供商注入我的应用程序是一个问题。知道我遗漏了什么吗?看看您粘贴的代码片段问题,可能是您在注册
oData
提供程序之前出现了配置块。尝试在oDataProvider注册后设置配置块
将配置块从应用程序注册中分离出来,并在注册提供商后加载它。您只能配置在使用它的特定配置块之前注册的提供程序。constant
的情况并非如此,尽管您可以按任何顺序注册它们
以上信息(这是一个bug)是angular的1.2.*版本,使用1.3,即使在配置块之后,您也可以注册提供程序。@mlang欢迎您。如果升级到1.3 rc,则不应面临此问题。