ionic framework$ state.go('app.home'); 在页面上添加我想要去(如何删除它)的返回button?

我有侧边栏菜单的应用程序。 我在第二页,我呼叫控制器function,redirect到第一页使用:

$state.go('app.home'); 

问题是,在这个页面上现在显示的是后退button,旁边的侧边栏菜单图标,见下图:

在这里输入图像说明

有人可以告诉我如何否认添加回到已分配侧边栏菜单的页面的button?

谢谢你的帮助。

app.js与路由器configuration如下:

 angular.module('Test', ['ionic', 'config', 'Test', 'LocalStorageModule']) .run(function($ionicPlatform) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } }); }) .config(function($stateProvider, $urlRouterProvider, localStorageServiceProvider) { localStorageServiceProvider .setPrefix('max_relax'); $stateProvider .state('app', { url: '/app', abstract: true, templateUrl: 'templates/menu.html', controller: 'AppCtrl' }) .state('app.home', { url: '/home', views: { 'menuContent' :{ templateUrl: 'templates/home.html', controller: 'HomeCtrl' } } }) .state('app.saved', { url: '/saved', views: { 'menuContent' :{ templateUrl: 'templates/saved.html', controller: 'SavedCtrl' } } }) .state('app.settings', { url: '/settings', views: { 'menuContent' :{ templateUrl: 'templates/settings.html', controller: 'SettingsCtrl' } } }); // if none of the above states are matched, use this as the fallback $urlRouterProvider.otherwise('/app/home'); }); 

编辑:

新增菜单模板:

 <ion-side-menus> <ion-pane ion-side-menu-content> <ion-nav-bar class="bar-stable"> <ion-nav-back-button class="button-clear"><i class="icon ion-ios7-arrow-back"></i> Back</ion-nav-back-button> </ion-nav-bar> <ion-nav-view name="menuContent" animation="slide-left-right"></ion-nav-view> </ion-pane> <ion-side-menu side="left"> <header class="bar bar-header bar-stable"> <h1 class="title">Menu</h1> </header> <ion-content class="has-header"> <ion-list> <ion-item nav-clear menu-close href="#/app/home"> Home </ion-item> <ion-item nav-clear menu-close href="#/app/saved"> Saved </ion-item> <ion-item nav-clear menu-close href="#/app/settings"> Settings </ion-item> </ion-list> </ion-content> </ion-side-menu> </ion-side-menus> 

在调用$state.go('app.home')之前,在你的控制器中使用$ionicHistory

 .controller('HomeCtrl', function($scope,...,$ionicHistory) { ... $ionicHistory.nextViewOptions({ disableBack: true }); $state.go('app.home'); }); 

你可以在$ state.go('Yourstate')之前设置nextViewOptions。 就像在你的控制器中,你可以写,

 $ionicHistory.nextViewOptions({ disableBack: true }); $state.go('app.home'); 

所以对于这个转换,它将清除历史堆栈并将下一个视图设置为历史堆栈的根。

在你想返回HomeCtrl控制器上:

 .controller('SavedCtrl', function($scope,...,$ionicHistory) { ... $ionicHistory.nextViewOptions({ disableBack: true }); $state.go('app.home'); }) .controller('HomeCtrl', function($scope,...,$ionicHistory) { $ionicHistory.clearHistory(); }) 
 $ionicNavBarDelegate.showBackButton(false); 

只要包含在<ion-nav-bar> <ion-nav-back-button></ion-nav-back-button> ,您将在任何使用app视图上默认看到一个后退button。

删除<ion-nav-back-button>会从使用app所有视图中删除后退button。 您可以根据模板的<ion-view>设置hide-back-button="true" ,根据您查看的模板来select性地禁用它。

所以,在你的情况,去除<ion-nav-back-button class="button-clear"><i class="icon ion-ios7-arrow-back"></i> Back</ion-nav-back-button>menu.html的“button”将隐藏使用app所有视图上的后退button。

使用Ionic的侧面菜单时,我也遇到了这个问题。

在某些情况下,当从侧面菜单中select一个选项时,结果页面/视图会在导航栏中显示一个后退button,不应该这样做(因为select菜单选项应该重置历史logging)。

问题与在菜单选项中使用“ng-click”有关,例如:

<ion-item menu-close ng-click="showStartPage()" ...>

'showStartPage'是一个调用$ state.go(…)的Controller方法。

解决scheme是这样的代码:

<ion-item menu-close href="#/startPage" ...>

当这样做,离子是(显然)能够适当跟踪导航历史。

(我没有尝试过,但可能“ui-sref”而不是“href”也可以)