我有一个奇怪的问题,不知何故我自己的提供者没有正确地注入(inject)我的应用程序。
这是我的提供商:
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
}
]
}
]
这是我的应用+配置 block :
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
...
我收到以下错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module 1425App due to: Error: [$injector:unpr] Unknown provider: ODataProvider
这让我相信,将提供者注入(inject)我的应用程序是一个问题。知道我缺少什么吗?
最佳答案
查看您粘贴的代码段问题可能是您在注册 oData
提供程序之前出现了配置 block 。尝试在 oDataProvider 注册后设置配置 block 。
将配置 block 与应用程序注册分开,并在您的提供商注册后加载它。您只能配置在使用它的特定配置 block 之前注册的提供者。 constant
不是这种情况,尽管您可以按任何顺序注册它们。
以上信息(这是一个错误)是 1.2.* 版本的 Angular,在 1.3 中你甚至可以在配置 block 之后注册提供者。
关于javascript - Angular - 来自提供商的未知提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26307318/