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”也可以)
- 当我使用async / awaitfunction时,Angular UI路由器不处理parsing函数?
- 使用$ window或$ location在AngularJS中redirect
- 如何在ui-router中使用ui-sref传递参数给控制器
- Angular UI路由器 – 如何访问从父模板传递的嵌套命名视图中的参数?
- 我如何获得后退button以使用AngularJS UI路由器状态机?
- 当用户使用UI-Router转换到其父状态时,将用户引导到子状态
- Angularjs ui-router。 如何redirect到login页面
- 带有requirejs的angular-ui-router,延迟加载控制器
- angular-route和angular-ui-router有什么区别?