Angular-提供程序中的未知提供程序

Angular - Unknown Provider from Provider

本文关键字:程序 未知 Angular-      更新时间:2023-09-26

我遇到了一个奇怪的问题,不知怎么的,我自己的提供者没有正确地注入到我的应用程序中。

这是我的供应商:

    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:moduler]未能实例化模块1425App由于:错误:[$injector:unp]未知提供程序:ODataProvider

这让我相信,将提供者注入我的应用程序是个问题。知道我缺了什么吗?

查看您粘贴的代码段问题可能是在注册oData提供程序之前出现了配置块。请尝试在oDataProvider注册后设置配置块。

将配置块与应用程序注册分离,并在您的提供商注册后加载它。您只能配置在使用它的特定配置块之前注册的提供程序。constant不是这样,尽管您可以按任何顺序注册它们。

以上信息(这是一个错误)是angular的1.2.*版本,使用1.3,即使在配置块之后也可以注册提供程序。