2014-02-11 176 views
2

我開始使用角度,現在我堅持了以下問題......錯誤:未知提供商

當我打開登錄頁面,在Firebug的控制檯我得到:

Error: Unknown provider: loggerProvider <- logger.....

如果有人能看到這個非常小的項目angular-seed-master.zip,可以從here下載。

它包含基本的登錄,註銷,註冊功能。

不知何故,在login.js RootCtrl函數中,我不允許傳遞記錄器作爲參數。我不知道爲什麼。

非常感謝你, Danijela

段:

login.js控制器的和平:

的index.html
function LoginCtrl($scope, $rootScope, $http, logger, messagesService) {  
} 

function RootCtrl ($scope, $http, logger, $location) { 
... 
} 

function UnsecureCtrl ($scope) { 
... 
} 

和平:

... 
<body> 
    <div ng-controller="RootCtrl"> 
    <header> 
     <div class="user-panel"> 
      <div ng-switch on="isLoggedIn"> 
       <div class="user" ng-cloak ng-switch-when="true">Hello {{email}}!</div> 
       <div class="loginout"> 
        <button class="btn" ng-cloak ng-switch-when="false" ng-click="loginRoute()">Login</button>    
        <button class="btn" ng-cloak ng-switch-when="true" ng-click="logout()">Logout</button> 
       </div> 
      </div> 
     </div> 
    </header> 
    <div class="container-fluid" ng-view ng-animate="{enter: 'view-enter'}"></div> 
    <footer> 
    </footer> 
    </div> 
</body> 
... 

和主.js:

'use strict'; 

require.config({ 
    baseUrl:'js', 
    paths:{ 
     jquery: '../lib/jquery/jquery-1.8.2.min', 
     angular: '../lib/angular/angular.min', 
     toastr: '../lib/toastr.min', 
     logger: 'components/logger', 
     loginctrl: 'controllers/login', 
     securectrl: 'controllers/secure', 
     messagesService: 'services/messagesService', 
     ngLoginSubmit: 'directives/ngLoginSubmit' 
    }, 
    shim:{ 
     'angular':{ 
      exports:'angular' 
     }, 
     'jquery': { 
      exports: '$' 
     }, 
     'toastr': { 
      deps:['jquery'], 
      exports: "toastr" 
     }, 
     'routes': { 
      deps:['loginctrl','securectrl'] 
     }, 
     'logger': { 
      deps:['jquery','angular','toastr'] 
     }, 
     'ngLoginSubmit': { 
      deps:['angular'] 
     } 
    }, 
    priority:[ 
     'angular' 
    ] 
}); 

require([ 
    'angular', 
    'jquery', 
    'loginctrl', 
    'securectrl',  
    'app', 
    'toastr', 
    'logger', 
    'routes', 
    'messagesService', 
    'ngLoginSubmit' 
], function (angular) { 
    //After all dependencies are loaded, bootstrap application 
    $(document).ready(function() { 
     angular.bootstrap(document, ['tableplanner']); 
    }); 
}); 

和logger.js:

'use strict'; 
define(['app', 'toastr'], function (app, toastr) { 

    app.factory('logger', function() { 
    ... 
+0

是否在頁面上包含腳本 – tymeJV

+0

如果可能,請在您的問題中添加代碼 – chopper

+0

您是否需要其他任何東西? – Danijela

回答

1

您需要驗證記錄器被正確注射。添加一個片段來幫助你,這比鏈接整個項目要好。

+0

感謝您這樣快速的回答,我只是添加片段。你需要其他信息嗎? – Danijela

+0

記錄器在LoginCtrl中正確注入,但接縫不在RootCtrl中。 – Danijela

1

我已經從html標記中刪除了ng-app屬性,並解決了此問題。

相關問題