ng-show无法识别布尔值?

时间:2016-11-07 20:27:06

标签: angularjs firebase firebase-authentication

我使用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>

0 个答案:

没有答案