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()
});
}
}])