Javascript angularjs-当localstorage有值时实时显示选项卡

Javascript angularjs-当localstorage有值时实时显示选项卡,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我试图隐藏一些选项卡,仅当用户名localstorage变量username包含值时才启用它。我可以正确隐藏,但当localstorage获得值时,选项卡不会显示 <ion-tabs ng-controller="tabs_ctrl" class="tabs-icon-top tabs-positive"> <ion-tab ng-if ="username==null" title="Sign In" icon="ion-log-in" href="#/tab/s

我试图隐藏一些选项卡,仅当用户名
localstorage
变量username包含值时才启用它。我可以正确隐藏,但当localstorage获得值时,选项卡不会显示

<ion-tabs  ng-controller="tabs_ctrl" class="tabs-icon-top  tabs-positive">


  <ion-tab ng-if ="username==null" title="Sign In" icon="ion-log-in" href="#/tab/signin">
    <ion-nav-view name="tab-signin"></ion-nav-view>
  </ion-tab>


  <ion-tab ng-if ="username==null" title="Create Account" icon="ion-person">
    <ion-nav-view name="tab-create_account"></ion-nav-view>
  </ion-tab>



  <ion-tab ng-if ="username!=null" title="My Account" icon="ion-person" href="#/tab/account">
    <ion-nav-view name="tab-user_account"></ion-nav-view>
  </ion-tab>


  <ion-tab ng-if ="username!=null" title="Billing" icon="ion-ios-paper" href="#/tab/billing">
    <ion-nav-view name="tab-billing"></ion-nav-view>
  </ion-tab>
</ion-tabs>
这是我的登录控制器,当用户登录正确时,我设置username localstorage值,但视图不会更新以显示用户登录时假定为who的选项卡

.controller('login_ctrl',['$scope','$http','$timeout','$ionicModal','$ionicLoading','$ionicPopup','$location','$cordovaToast','$location',function($scope,$http,$timeout,$ionicModal,$ionicLoading,$ionicPopup,$location,$cordovaToast,$location){

    $scope.mainlogin= function(){
    $ionicLoading.show({template: '<p>Please Wait...</p><ion-spinner></ion-spinner>'});
        event.preventDefault();
        $http.post("http://localhost/myapp/scripts/login.php",
        {'username':$scope.username,'password':$scope.password})
        .success(function(data){
        console.log(JSON.stringify(data));

            {$ionicLoading.hide();}

            if(data==="Incorrect Username or Password"){
            $scope.mainloginAlert()
    }
                else{
                if(data != "Incorrect Username or Password"){
                localStorage.setItem("customer_name",(data[0].customer_name));
                localStorage.setItem("account_number",(data[0].account_number));
                localStorage.setItem("username", $scope.username)
                $location.path = '#/tab/create_account';
                    }
                }

                }).error(function(error){
                console.error(error);
                {$ionicLoading.hide();}
                $scope.connect()
                    });

  }


}])
.controller('login_ctrl'、['$scope'、'$http'、'$timeout'、'$ionicModal'、'$ionicLoading'、'$ionicPopup'、'$location'、'$Cordovatos'、'$location',函数($scope、$http、$timeout、$ionicModal、$ionicLoading、$ionicPopup、$location、$Cordovatos、$location)){
$scope.mainlogin=function(){
$ionicLoading.show({模板:'请稍候…

'}); event.preventDefault(); $http.post(“http://localhost/myapp/scripts/login.php", {'username':$scope.username,'password':$scope.password}) .成功(功能(数据){ log(JSON.stringify(data)); {$ionicLoading.hide();} 如果(数据==“用户名或密码不正确”){ $scope.mainloginAlert() } 否则{ 如果(数据!=“用户名或密码不正确”){ setItem(“客户名称”(数据[0]。客户名称)); localStorage.setItem(“帐户号”,(数据[0]。帐户号)); localStorage.setItem(“用户名”,$scope.username) $location.path='#/tab/create_account'; } } }).错误(函数(错误){ 控制台错误(error); {$ionicLoading.hide();} $scope.connect() }); } }])
这是因为localStorage.getItem(“用户名”)正在返回一个承诺

必须使用then来获取getItem()值

像这样:


localStorage.getItem(“用户名”)。然后(函数(用户名){$scope.username=username})

浏览器控制台中有任何错误吗?浏览器没有收到任何错误您可以在html上看到值吗?通过像{{username}一样打印
.controller('login_ctrl',['$scope','$http','$timeout','$ionicModal','$ionicLoading','$ionicPopup','$location','$cordovaToast','$location',function($scope,$http,$timeout,$ionicModal,$ionicLoading,$ionicPopup,$location,$cordovaToast,$location){

    $scope.mainlogin= function(){
    $ionicLoading.show({template: '<p>Please Wait...</p><ion-spinner></ion-spinner>'});
        event.preventDefault();
        $http.post("http://localhost/myapp/scripts/login.php",
        {'username':$scope.username,'password':$scope.password})
        .success(function(data){
        console.log(JSON.stringify(data));

            {$ionicLoading.hide();}

            if(data==="Incorrect Username or Password"){
            $scope.mainloginAlert()
    }
                else{
                if(data != "Incorrect Username or Password"){
                localStorage.setItem("customer_name",(data[0].customer_name));
                localStorage.setItem("account_number",(data[0].account_number));
                localStorage.setItem("username", $scope.username)
                $location.path = '#/tab/create_account';
                    }
                }

                }).error(function(error){
                console.error(error);
                {$ionicLoading.hide();}
                $scope.connect()
                    });

  }


}])