我已按照教程 here 进行操作但不知何故犯了这个错误
Unknown provider: currentAuthProvider <- currentAuth
我向所有 Controller 添加了 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'
])
这是 Controller 之一:
angular.module('warp')
.controller("signupCtrl", ["$rootScope", '$scope', 'userFactory', '$window', '$firebase', '$location', 'USERS', 'currentAuth',
function($rootScope, $scope, userFactory, $window, $firebase, $location, USERS, currentAuth) {
最佳答案
检查您的 HTML 部分 View 并删除 ng-controller 声明。
NgRoute 会为您实例化 Controller 并将其绑定(bind)到 View 中定义的 DOM,因此无需在 View 的部分 HTML 中使用 ng-controller 指定 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 将尝试实例化 Controller 两次:
- 一旦在加载 DOM 时遇到它,此时 currentAuth 将不会被定义,因此如果它被列为 Controller 中的依赖项。
- 一旦解决完成。
关于javascript - AngularFire 0.9 解决了 UI 路由器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023887/