【问题标题】:AngularFire 0.9 resolve with UI routerAngularFire 0.9 使用 UI 路由器解析
【发布时间】:2014-11-19 18:07:50
【问题描述】:

我按照教程 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) {

【问题讨论】:

  • 您的script 包含的顺序是什么? angular.min.js 必须先出现,然后是 firebase.js,然后是 angularfire.min.js,然后是 app.js
  • 再检查一次——一切都按照脚本的顺序正确。
  • 发布您的var app = angular.module( ... ) 声明的内容(... 部分很重要)。
  • 更新了问题!
  • 为什么userFactory 而不是教程所说的Auth

标签: javascript angularjs firebase angularfire angular-ui-router


【解决方案1】:

检查您的 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 会尝试两次实例化控制器:

  • 一旦在加载 DOM 时遇到它,此时 currentAuth 将不会被定义,因此如果它被列为控制器中的依赖项。
  • 解决完成后。

【讨论】:

  • 也帮助了我,谢谢!不知道,这是一件很严重的事情。
【解决方案2】:

您只需将“currentAuth”对象注入您处理登录的控制器。 当我从所有其他控制器中删除它时为我工作。

【讨论】:

  • 没有理由不能将服务注入多个控制器。如果这不起作用,则可能是服务代码中的错误。
猜你喜欢
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 2017-03-02
相关资源
最近更新 更多