我有一个奇怪的问题,不知何故我自己的提供商没有正确地注入我的应用程序。
这是我的提供者:
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
}
]
}
]
这是我的app +配置块:
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]无法实例化模块 1425App由于:错误:[$ injector:unpr]未知提供商: ODataProvider
这导致我相信,这是将提供程序注入我的应用程序的问题。知道我遗失了什么吗?
答案 0 :(得分:2)
查看粘贴的代码段问题可能是您在oData
提供程序注册之前出现了配置块。尝试在oDataProvider注册后设置配置块。
从app注册中分离出配置块,并在您的提供商注册后加载它。您只能配置在使用它的特定配置块之前注册的提供程序。虽然您可以按任何顺序注册它们,但constant
不是这种情况。
以上信息(这是一个错误)是1.2。*版本的角度,1.3即使在配置块后也可以注册提供者。