javascript - AngularFire 0.9 解决了 UI 路由器问题

标签 javascript angularjs firebase angularfire angular-ui-router

我已按照教程 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/

相关文章:

javascript - 使用多种模式构建跨度标签的正则表达式

javascript - 在 Angular 选择特定选项后如何将下拉列表设置为默认值

ios - 从 firebase 获取的图像在将它们添加到 tableViewCells 的过程中被复制了吗?

javascript - <span> 关闭按钮不起作用

javascript 如何删除基于 if else 的选择选项

javascript - 无法使用 AngularJS 中的 HTTP get 调用从 JSON 平面文件返回结果

android - React Native PushNotification onNotification 方法

android - 应用程序未被授权使用 Firebase 身份验证,但可以在测试手机上正常工作

javascript - AngularJS 指令 - 将函数作为参数传递给 "&"属性

javascript - Angular 工厂: Implementing getAll function to consume REST Api