尝试使用Firebase facebookconnect和AngularJS更新范围变量时出现问题
Trouble trying to update a scope variable using Firebase facebook connect and AngularJS
事情是这样的。。。
我正在使用AngularJS,并尝试使用firebird的facebook连接来尝试一些事情。
一切都很好,它连接到我的脸书,并返回我帐户的信息,但问题是,当我使用angular时,我会使用ng-show和ng-hide来显示和隐藏连接按钮,对吧?
所以我有一个这样的结构:
<div ng-controller="LoginCtrl">
<div ng-hide="logedUser">
<a href="" ng-click="loginFacebook()">Login with Facebook</a>
<a href="" ng-click="checkAuth()">check</a>
</div>
<div ng-show="logedUser">
<a href="" ng-click="logout()">Logout</a>
</div>
</div>
logedUser验证用户是否已登录,因此它为true或false,从而使一个div显示,另一个div隐藏。
问题是,当我试图更新这个变量时,我的角度控制器,这是代码:
app.controller('LoginCtrl', function($scope) {
$scope.loginFacebook = function() {
auth.login('facebook', {
rememberMe: true,
scope: 'email,user_likes'
});
};
$scope.logout = function() {
auth.logout();
};
$scope.checkAuth = function() {
console.log($scope);
};
var loginRef = new Firebase('https://angulartodolist.firebaseIO.com/');
var auth = new FirebaseSimpleLogin(loginRef, function(error, user) {
if (error) {
// an error occurred while attempting login
console.log(error);
$scope.logedUser = false;
} else if (user) {
// user authenticated with Firebase
console.log(user);
$scope.logedUser = true;
} else {
// user is logged out
$scope.logedUser = false;
}
}); });
因此,当我点击login时,它会调用loginFacebook()函数,进行身份验证,然后返回我的用户信息,之后,我将logedUser变量更改为true,使用$scope.logedUser=true;
但在我的前端,它没有更改div,所以我创建了一个名为checkAuth()的函数,只是为了访问控制器,并制作了一个简单的console.log,在我执行该函数后,它会更改div,使登录div消失,注销div出现。。。
难道仅仅通过设置Firebase回调中的变量就不应该自动发生吗?
添加
$scope.$apply()
在FirebaseSimpleLogin回调函数中:)
通常,"angular的世界"之外的每个回调都需要这个来刷新其范围。
相关文章:
- js命名空间和变量范围
- 如何确保变量范围在这个循环中得到维护
- 在两个浏览器选项卡之间共享变量范围
- 文件API中的Javascript变量范围
- javascript和jQuery的嵌套对象函数中的变量范围
- JavaScript 函数变量范围问题
- JavaScript 中变量范围的问题
- Javascript - 揭示对象和变量范围
- 主干.js(具有 Require.js)变量/范围访问问题
- Javascript 变量范围未定义
- 如何绕过javascript变量范围
- IE 8变量范围错误
- 了解 Javascript 变量范围
- 控制变量范围
- 函数之间的Javascript变量范围问题
- 这种减少if语句中声明的变量范围的模式是一种好的做法吗
- 用于未初始化的局部变量的javascript变量范围
- 变量范围
- 请求节点模块变量范围
- Javascript 和 JQuery dom 全局变量范围