我已经按照教程here进行了操作,但却出现了这个错误
Unknown provider: currentAuthProvider <- currentAuth
我将currentAuth添加到我的所有控制器中,可能出错了什么?
Firebase 2.0.4
AngularFire 0.9.0
这里是路线档案:
.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'views/home.html',
controller: "homeCtrl",
resolve: {
"currentAuth": ["userFactory", function(userFactory) {
return userFactory.$waitForAuth();
}]
}
})
我只有两个模块:
var warp = angular.module('warp', [
'firebase',
'ui.router'
])
这是控制器之一:
angular.module('warp')
.controller("signupCtrl", ["$rootScope", '$scope', 'userFactory', '$window', '$firebase', '$location', 'USERS', 'currentAuth',
function($rootScope, $scope, userFactory, $window, $firebase, $location, USERS, currentAuth) {
答案 0 :(得分:3)
检查您的HTML部分视图并删除 ng-controller 声明。
NgRoute为您实例化控制器并将其绑定到视图中定义的DOM,因此无需在视图的部分HTML中使用 ng-controller 指定控制器。
这有效:
<!-- in it's own HTML file, say views/signupCtrl.html -->
<div> <!-- Look, no need for ng-controller="signupCtrl"... -->
...signup Form etc...
</div>
如果执行在那里留下ng-controller定义会发生什么(我怀疑你做的是),angular会尝试将控制器实例化两次:
答案 1 :(得分:-1)
你需要注入&#39; currentAuth&#39;仅对您处理登录的Controller对象。 当我从所有其他控制器中删除它时,为我工作。