제 의도는 사용자 로그인 후 탐색 바를 업데이트하는 것입니다. 기본적으로 로그인 후 Login
~ Hi, {{usr.username}}
으로 변경되어야합니다.
그러나 로그인 한 후에는 업데이트되지 않으므로 다시 변경하려면 Login
을 클릭해야합니다. 그러나 콘솔에서 사용자 정보는 로그인 직후에 기록됩니다. 된 index.html에서값 변경 후 AngularJS가 업데이트되지 않습니다.
는, 코드의 일부가 보이는 같은 $scope.loggedIn
는 허위 $scope.usr
로서 null로 초기화
<div class="item" ng-click="loginmodal()" ng-hide="loggedIn">Log in</div>
<div class="item" ng-show="loggedIn">Hi, {{usr.username}}</div>
. 나는 인증 중포 기지를 사용하고 있습니다 :
콘솔에서FirebaseRef.authWithPassword({
"email" : email,
"password" : password
}, function(error, authData) {
if (error) {
console.log('Login Failed!', error);
} else {
console.log('Authenticated successfully with payload:', authData);
FirebaseRef.child("users").child(authData.uid).once('value', function(dataSnapshot) {
$scope.usr = dataSnapshot.val();
});
$scope.loggedIn = true;
console.log($scope.usr);
console.log($scope.loggedIn);
}
});
, 나는 $scope.loggedIn
같은 사실을 가지고 있지만 널 (null)로 $scope.usr
있습니다.
authWithPassword()
기능을 사용하는 방법이 잘못되었거나 강제로 변경 사항을 업데이트 할 수 있습니까?
$ scope.user가 다른 범위에 있다고 생각합니다. 서비스를 사용하여이 값을 업데이트 해보십시오. – Bazinga
@Miszy가 말했듯이 AngularFire의'$ firebaseAuth' 서비스를 사용해야합니다.이 서비스는 범위 업데이트를 처리합니다. https://www.firebase.com/docs/web/libraries/angular/guide.html#section-angular-authentication –