我开始使用Angular,现在我遇到了以下问题......
当我加载登录页面时,在firebug控制台中我得到:
Error: Unknown provider: loggerProvider <- logger.....
如果有人能看到这个非常小的项目angular-seed-master.zip,可以从here下载。
它包含基本的登录,注销,注册功能。
不知何故,在login.js RootCtrl
函数中,我不允许将logger作为参数传递。我不知道为什么。
非常感谢, Danijela
段:
login.js控制器的和平:
function LoginCtrl($scope, $rootScope, $http, logger, messagesService) {
}
function RootCtrl ($scope, $http, logger, $location) {
...
}
function UnsecureCtrl ($scope) {
...
}
index.html的和平:
...
<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>
...
和main.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 :(得分:1)
您需要验证记录器是否已正确注入。添加一个片段来帮助您,它比链接整个项目更好。
答案 1 :(得分:1)
我已从html标记中删除了ng-app属性,此问题已解决。