diff --git a/js/angular/controller/headerBarController.js b/js/angular/controller/headerBarController.js index b4221fd578..5943543334 100644 --- a/js/angular/controller/headerBarController.js +++ b/js/angular/controller/headerBarController.js @@ -22,7 +22,7 @@ function($scope, $element, $attrs, $q, $ionicConfig, $ionicHistory) { var titleRight = 0; var titleCss = ''; var isBackEnabled = false; - var isBackShown = false; + var isBackShown = true; var titleTextWidth = 0; @@ -46,7 +46,7 @@ function($scope, $element, $attrs, $q, $ionicConfig, $ionicHistory) { // to the navigation and history if (arguments.length && shouldEnable !== isBackEnabled) { var backBtnEle = getEle(BACK_BUTTON); - backBtnEle && backBtnEle.classList[ shouldEnable ? 'remove' : 'add' ](HIDE); + backBtnEle && backBtnEle.classList[ shouldEnable ? 'remove' : 'add' ]('back-disabled'); isBackEnabled = shouldEnable; } return isBackEnabled; @@ -58,7 +58,7 @@ function($scope, $element, $attrs, $q, $ionicConfig, $ionicHistory) { // visually hidden if false, even if the history says it should show if (arguments.length && shouldShow !== isBackShown) { var backBtnEle = getEle(BACK_BUTTON); - if (backBtnEle) backBtnEle.style.display = (shouldShow ? '' : 'none'); + backBtnEle && backBtnEle.classList[ shouldShow ? 'remove' : 'add' ](HIDE); isBackShown = shouldShow; } return isBackShown; @@ -122,7 +122,6 @@ function($scope, $element, $attrs, $q, $ionicConfig, $ionicHistory) { defaultTitleEle.classList.remove(HIDE); } } - self.showBack(true); }; diff --git a/js/angular/controller/navBarController.js b/js/angular/controller/navBarController.js index 12b5670ef2..d14365d8ac 100644 --- a/js/angular/controller/navBarController.js +++ b/js/angular/controller/navBarController.js @@ -69,6 +69,11 @@ function($scope, $element, $attrs, $compile, $timeout, $ionicNavBarDelegate, $io positionButtons(navEle[buttonType], buttonType); }); + // add header-item to the root children + for (var x = 0; x < headerBarEle[0].children.length; x++) { + headerBarEle[0].children[x].classList.add('header-item'); + } + // compile header and append to the DOM containerEle.append(headerBarEle); $element.append($compile(containerEle)($scope.$new())); diff --git a/js/angular/directive/navBackButton.js b/js/angular/directive/navBackButton.js index 2edb95245f..328318fb81 100644 --- a/js/angular/directive/navBackButton.js +++ b/js/angular/directive/navBackButton.js @@ -71,7 +71,7 @@ IonicModule buttonEle.setAttribute('ng-click', '$ionicGoBack($event)'); } - buttonEle.className = 'button back-button hide buttons ' + (tElement.attr('class') || ''); + buttonEle.className = 'button back-button back-disabled buttons ' + (tElement.attr('class') || ''); buttonEle.innerHTML = tElement.html() || ''; var childNode; diff --git a/scss/_bar.scss b/scss/_bar.scss index f147b26e9e..3320b3a190 100644 --- a/scss/_bar.scss +++ b/scss/_bar.scss @@ -361,6 +361,7 @@ z-index: $z-index-bar; } +.bar .back-button.back-disabled, .bar .back-button.hide, .bar .buttons .hide { display: none; diff --git a/scss/_transitions.scss b/scss/_transitions.scss index 63a80f2cec..fb129040aa 100644 --- a/scss/_transitions.scss +++ b/scss/_transitions.scss @@ -62,6 +62,10 @@ $ios-transition-container-bg-color: #000 !default; [nav-bar="cached"] { display: block; + + .header-item { + display: none; + } } } diff --git a/test/unit/angular/directive/navBackButton.unit.js b/test/unit/angular/directive/navBackButton.unit.js index 5a8e9804b5..2c73686753 100644 --- a/test/unit/angular/directive/navBackButton.unit.js +++ b/test/unit/angular/directive/navBackButton.unit.js @@ -34,7 +34,7 @@ describe('ionNavBackButton directive', function() { expect( outputEle[0].tagName ).toBe('BUTTON'); expect( outputEle.hasClass('button') ).toBe(true); expect( outputEle.hasClass('back-button') ).toBe(true); - expect( outputEle.hasClass('hide') ).toBe(true); + expect( outputEle.hasClass('back-disabled') ).toBe(true); expect( outputEle.hasClass('buttons') ).toBe(true); }));