Facebook Angular中的第二个控制器不提示FB登录
我以前使用过angular,但这是我第一次设置它 我正在尝试让Firebase简单登录使用Angular、Node和Express。我的目标是,当用户点击一个登录按钮时,他们就可以用facebook(稍后将添加Twitter和电子邮件+密码)登录应用程序 问题是,当我单击登录时,页面的主控制器(和警报)会触发一个事件,而不是我设置的控制器。我曾尝试在app.config()部分添加/更改控制器,移动名称,使用过去的代码,从头开始,遵循无数教程,甚至做了一个简单的基本案例来创建console.log。仍然没有什么,我可能完全误解了事情,但我如何才能让它工作呢 脚本文件:Facebook Angular中的第二个控制器不提示FB登录,facebook,node.js,angularjs,firebase,Facebook,Node.js,Angularjs,Firebase,我以前使用过angular,但这是我第一次设置它 我正在尝试让Firebase简单登录使用Angular、Node和Express。我的目标是,当用户点击一个登录按钮时,他们就可以用facebook(稍后将添加Twitter和电子邮件+密码)登录应用程序 问题是,当我单击登录时,页面的主控制器(和警报)会触发一个事件,而不是我设置的控制器。我曾尝试在app.config()部分添加/更改控制器,移动名称,使用过去的代码,从头开始,遵循无数教程,甚至做了一个简单的基本案例来创建console.lo
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> </li>
<li> <a href="#" id="fblogin" ng-click="auth.$login('facebook')">Login Facebook</a></li>
<li> </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)的最新版本,该版本将于今天某个时候发布,用于修复此问题。现在使用不同的版本,但谢谢。我会在可能的时候尝试一下。