从控制器更改app.js中的ng-if语句

时间:2016-06-01 09:08:27

标签: javascript angularjs if-statement angular-ng-if

我想更改ng-if值"已登录"在我的login/login.js中的index.html中使用此代码

$scope.doLogin = function() {
    console.log('Logging in as ', $scope.loginData.email);
  AuthService.login($scope.loginData)
    .then(function() {
        $rootScope.loggedIn = true;
        $scope.layout = 'styles';
        $state.go('app.mainReg');

        $stateParams.id = $currentUserId;
        console.log($currentUserId);
    });
};

我的app.js中有这种stateProvider

.state('app', {
            url:'/',
            abstract: true,
            views:{
                'bodyLogin': {
                    templateUrl : 'views/login/body.html',
                    controller  : 'BodyController'
                },
                'bodyMain': {
                    templateUrl : 'views/main/body.html',
                    controller  : 'BodyController'
                }
            }
        })
.state('app.mainUnreg', {
            url:'home',
            views: {
                'content@app': {
                    templateUrl : 'views/login/home.html',
                    controller  : ''
                }
            }
        })
.state('app.mainReg', {
            url:':userID',
            views: {
                'header@app': {
                    templateUrl : 'views/main/header.html',
                    controller  : ''
                },
                'sidebar@app': {
                    templateUrl : 'views/main/sidebar.html',
                    controller  : ''
                },
                'middle@app': {
                    templateUrl : 'views/main/home.html',
                    controller  : ''
                },
                'footer@app': {
                    templateUrl : 'views/main/footer.html',
                    controller  : ''
                }
            },
            controller: 'MainController'
        })

我用div分隔每个州

<div ng-if="!loggedIn" ui-view="bodyLogin" class="site-wrapper" ui-sref-active="app.mainUnreg"></div>

<div ng-if="loggedIn" ui-view="bodyMain" ui-sref-active="app.mainReg"></div>

但是,我似乎没有任何效果,即使我已经登录并被重定向,loggedIn的声明也没有改变,仍然是false

我已将文件放在GitHub

有没有人知道我犯了哪些错误,所以我的登录声明无法更改?

1 个答案:

答案 0 :(得分:0)

Just change <div ng-if="!loggedIn" to <div ng-if="!$root.loggedIn"