我使用ng-show显示登录和退出屏幕,我无法弄清楚我在这里做错了什么。我将mc.show定义为myController中的一个对象。最初将布尔值设置为true,然后根据是否有用户更改值。但有些事情不在这里工作。
js file _
var firebase = require('firebase'),
angular = require('angular'),
angularfire = require('angularfire'),
config = {
apiKey: 'AIzaSyD8Q0uYpB4hpWg16-xxw31B0YP7aUoj9fc',
authDomain: 'testone-1849f.firebaseapp.com',
databaseURL: 'https://testone-1849f.firebaseio.com',
storageBucket: 'testone-1849f.appspot.com',
messagingSenderId: '139803200782'
};
firebase.initializeApp(config);
angular.module('app', ['firebase'])
.controller('myController', myController);
function myController($firebaseObject) {
var btnGoogleIn = document.querySelector('#btnGoogleIn'),
btnGoogleOut = document.querySelector('#btnGoogleOut'),
mc = this;
mc.show = {
boolean: true
};
btnGoogleIn.addEventListener('click', function (e) {
//console.log("logging in");
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithRedirect(provider);
firebase.auth().getRedirectResult()
.then(function (result) {
var user, token;
if (result.credentials) {
token = result.credential.accessToken;
}
user = result.user;
})
.catch(function (error) {
// var errorCode = error.code,
// errorMessage = error.message,
// email = error.email,
// credential = error.credential;
});
});
btnGoogleOut.addEventListener('click', function (e) {
firebase.auth().signOut()
.then(function () {
},function (error) {
});
});
//add a real time listener
firebase.auth().onAuthStateChanged(function (firebaseUser) {
if(firebaseUser) {
mc.show.boolean = false;
console.log('logged in');
console.log(mc.show.boolean);
}
else{
mc.show.boolean = true;
console.log('not logged in');
console.log(mc.show.boolean);
}
});
html文件
<body ng-app="app" ng-controller="myController as mc" >
<div id="login" ng-show="mc.show.boolean">
<input id="btnGoogleIn" type="button" class="btn btn-primary" value="Log in with Google"/>
</div>
<div id="logout" ng-show="!mc.show.boolean">
<input id="btnGoogleOut" type="button" class="btn btn-primary" value="Log Out"/>
</div>
</body>