Facebook Angular中的第二个控制器不提示FB登录

Facebook Angular中的第二个控制器不提示FB登录,facebook,node.js,angularjs,firebase,Facebook,Node.js,Angularjs,Firebase,我以前使用过angular,但这是我第一次设置它 我正在尝试让Firebase简单登录使用Angular、Node和Express。我的目标是,当用户点击一个登录按钮时,他们就可以用facebook(稍后将添加Twitter和电子邮件+密码)登录应用程序 问题是,当我单击登录时,页面的主控制器(和警报)会触发一个事件,而不是我设置的控制器。我曾尝试在app.config()部分添加/更改控制器,移动名称,使用过去的代码,从头开始,遵循无数教程,甚至做了一个简单的基本案例来创建console.lo

我以前使用过angular,但这是我第一次设置它

我正在尝试让Firebase简单登录使用Angular、Node和Express。我的目标是,当用户点击一个登录按钮时,他们就可以用facebook(稍后将添加Twitter和电子邮件+密码)登录应用程序

问题是,当我单击登录时,页面的主控制器(和警报)会触发一个事件,而不是我设置的控制器。我曾尝试在app.config()部分添加/更改控制器,移动名称,使用过去的代码,从头开始,遵循无数教程,甚至做了一个简单的基本案例来创建console.log。仍然没有什么,我可能完全误解了事情,但我如何才能让它工作呢

脚本文件:

var app = angular.module('myApp', 
    ['ngRoute', 'app.controllers', 'app.directives', 'firebase', 'ngTouch']);

app.config(function ($routeProvider) {
  $routeProvider
    .when('/', {
      templateUrl: 'templates/index.html',
      controller: 'MyCtrl'
    })
    .otherwise({
      redirectTo: '/home'
    });
});

var controllers = angular.module('app.controllers', []);

controllers.controller('MyCtrl', ['$scope', 'angularFire',
  function($scope, angularFire) {

    var users = new Firebase('https://test.firebaseio.com');
    //angularFire(users, $scope, "users");s

    $scope.$on('$locationChangeStart', function (event) {
      event.preventDefault();
      console.log('sdfiojdsfdsf');
                alert('dsifjosdf');
            });

}]);

controllers.controller("MyAuthCtrl", ["$scope", "$rootScope", "$firebaseAuth",
  function($scope, $firebaseAuth) {

    var ref = new Firebase("https://test.firebaseio.com");
    $scope.auth = $firebaseAuth(ref);
    // $scope.auth.user will be `null` until the user logs in.

    $rootScope.$on("$firebaseAuth:login", function(evt, user) {
      console.log("User " + user.id + " successfully logged in!");
    });

    $rootScope.$on("$firebaseAuth:logout", function(evt) {
      console.log("User logged out!");
    });

}]);
HTML

<div ng-controller="MyAuthCtrl">
    <ul>
        <li>&nbsp;</li>
        <li> <a href="#" id="fblogin" ng-click="auth.$login('facebook')">Login Facebook</a></li>
        <li>&nbsp;</li>
        <li><a href="#" ng-click="auth.logout()">Log Out</a></li>
    </ul>
</div>


谢谢

您似乎将
angularFire
$firebaseAuth
混合使用。如果您使用的是AngularFire 0.5,则服务名为
$firebase
$firebaseAuth
。其次,最好在您自己的服务中只创建一个
$firebaseAuth
实例,而不是在每个控制器中创建一个实例。然后从您自己的服务调用
$login()
,并使用
$rootScope
让各个控制器知道使用事件登录成功。好的,一切似乎都正常。我正在使用angularFire 0.5并设置了$firebase和$firebaseAuth。但是现在我得到了这个错误:
TypeError:Object#在Object.angularfieauth没有方法has(https://cdn.firebase.com/libs/angularfire/0.5.0/angularfire.js:512:22)
我仍然无法登录。您使用的是什么版本的AngularJS?更新到1.2可能会有所帮助。如果你想特别使用1.0.7,你可以使用angularfire(0.6)的最新版本,该版本将于今天某个时候发布,用于修复此问题。现在使用不同的版本,但谢谢。我会在可能的时候尝试一下。