I need to show and hide back button in different pages/views. I took reference from Justin Noel:
<body ng-app="starter" ng-controller="AppCtrl">
<ion-nav-bar class="bar-stable">
<ion-nav-back-button hide-back-button="{{hideBackButton}}">
</ion-nav-back-button>
</ion-nav-bar>
</body>
App controller to toggle button display:
.controller('AppCtrl', function($scope, $location) {
var path = $location.path();
if (path.indexOf('submit') != -1)
$scope.hideBackButton = true;
else
$scope.hideBackButton = false;
})
But this doesnt work as controller is called only once but not at the change of view in different states. Also changing the value of $scope.hideBackButton from other controllers(linked to different states) does not have any effect on the button display.
Can anyone tell me how to toggle back-button display on each navigation. What am I missing here?
You can change the cache settings so that when the page is reloaded the controller is called again: http://ionicframework.com/docs/api/directive/ionNavView/
The
hide-back-button
attribute on<ion-view>
did the trick for me:<ion-view hide-back-button="true">
See the official documentation here.
A very simple way to achieve this is to apply the
menu-close
directive to your button/anchor. Technically it's meant for closing the menu, but you can use it on any link and it will bypass the slide animation & won't show the back button.http://ionicframework.com/docs/api/directive/menuClose/
Ionic 2 & 3:
<ion-navbar [hideBackButton]="true">
The
hide-back-button
attribute should be set onion-view
tag.