我正在离子框架中构建我的应用程序,我的登录代码最初是
AuthService.login(data.username, data.password).then(function(authenticated) {
$state.go('app.dashboard', {}, {reload: true});
}, function(err) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
});
});
但与我的预期不同,登录后页面没有重新加载,仍显示没有菜单选项的后退按钮。我现在将代码更改为
AuthService.login(data.username, data.password).then(function (data, status, headers, config) {
$state.go('app.dashboard').then(function() {
$window.location.reload(true);
});
}, function (err) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
});
});
Code我现在已经在某些Android手机上运行良好但在某些Android手机(4.x版本)上效果不佳。
登录后重新加载的正确方法是什么?
我认为它的行为是html。以下是我的menu.html代码
<ion-side-menus enable-menu-with-back-views="false">
<ion-side-menu-content>
<ion-nav-bar class="bar-dark">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-buttons side="right">
<button class="button button-icon button-clear ion-navicon" menu-toggle="right">
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-nav-view name="menuContent"></ion-nav-view>
</ion-side-menu-content>
<ion-side-menu side="right">
<ion-header-bar class="bar-dark">
<h1 class="title">Menu</h1>
</ion-header-bar>
<ion-content>
<ion-list>
<!-- content -->
</ion-list>
</ion-content>
</ion-side-menu>
</ion-side-menus>
以下是我的app.js代码
$stateProvider
.state('app', {
url: "/app",
abstract: true,
templateUrl: "templates/menu.html",
controller: 'AppCtrl'
})
.state('app.profile', {
url: "/profile",
views: {
'menuContent': {
templateUrl: "templates/profile.html"
}
}
})
//more pages
;
答案 0 :(得分:1)
确保每次输入页面都重新加载使用
$scope.$on('$ionicView.beforeEnter', function(){
//place anything you want to run evertime this view is entered here. for example
//$scope.getData();
//$scope.variable1 = something;
})
这将在输入视图之前运行您放入其中的所有内容。这是我如何使用它的一个例子。
$scope.$on('$ionicView.beforeEnter', function () {
$scope.doRefresh();
});
并在我的doRefresh函数中:
我抓住了一堆我需要刷新的数据:
$scope.doRefresh = function () {
$scope.setRoles();
$scope.payHistory();
$scope.LoadBoard();
$scope.Blog();
$scope.getHOS();
$scope.getFuelData();
}
};
您可以使用ng-if或ng-show检查刷新和设置变量的所有逻辑,以在菜单栏中显示正确的按钮。 在这里查看更多ionicView事件:http://ionicframework.com/docs/api/directive/ionView/