2014-10-10 62 views
3

我有一個奇怪的問題,那就是我的提供程序不能正確注入到我的應用程序中。Angular - 來自提供商的未知提供程序

這是我的供應商:

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 
... 

即時得到以下錯誤:

Uncaught Error: [$injector:modulerr] Failed to instantiate module 1425App due to: Error: [$injector:unpr] Unknown provider: ODataProvider

這導致我相信,它將提供者注入到我的應用程序中是一個問題。任何想法什麼我想念?

回答

2

看着你粘貼片斷的問題可能是你以前oData提供商已經註冊配置塊出現。嘗試在oDataProvider註冊後設置配置塊。從應用註冊

分離出配置塊和您提供商(S)後裝載它已經登記。您只能配置在使用它的特定配置塊之前註冊的提供程序。 constant的情況並非如此,但您可以按任意順序註冊。

的上述信息(這是一個錯誤)是1.2。*的角度的版本,與1.3甚至可以配置塊後註冊商。

+0

這實際上工作。非常感謝! – mlang 2014-10-10 20:21:06

+0

@mlang不客氣。如果你升級到1.3 RC,你不應該面對這個問題。 – PSL 2014-10-10 20:23:47

相關問題