Skip to content

Commit a0c3c55

Browse files
committed
fix(backButton): dynamic icon/text updates
Allow back button icon/text to be updated after app initialization. Closes #3281
1 parent 0936f78 commit a0c3c55

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

Diff for: js/angular/controller/headerBarController.js

+23-2
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,31 @@ function($scope, $element, $attrs, $q, $ionicConfig, $ionicHistory) {
7474

7575

7676
self.updateBackButton = function() {
77+
var ele;
7778
if ((isBackShown && isNavBackShown && isBackEnabled) !== isBackElementShown) {
7879
isBackElementShown = isBackShown && isNavBackShown && isBackEnabled;
79-
var backBtnEle = getEle(BACK_BUTTON);
80-
backBtnEle && backBtnEle.classList[ isBackElementShown ? 'remove' : 'add' ](HIDE);
80+
ele = getEle(BACK_BUTTON);
81+
ele && ele.classList[ isBackElementShown ? 'remove' : 'add' ](HIDE);
82+
}
83+
84+
if (isBackEnabled) {
85+
ele = ele || getEle(BACK_BUTTON);
86+
if (ele) {
87+
if (self.backButtonIcon !== $ionicConfig.backButton.icon()) {
88+
ele = getEle(BACK_BUTTON + ' .icon');
89+
if (ele) {
90+
self.backButtonIcon = $ionicConfig.backButton.icon();
91+
ele.className = 'icon ' + self.backButtonIcon;
92+
}
93+
}
94+
95+
if (self.backButtonText !== $ionicConfig.backButton.text()) {
96+
ele = getEle(BACK_BUTTON + ' .back-text');
97+
if (ele) {
98+
ele.textContent = self.backButtonText = $ionicConfig.backButton.text();
99+
}
100+
}
101+
}
81102
}
82103
};
83104

Diff for: js/angular/controller/navBarController.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ function($scope, $element, $attrs, $compile, $timeout, $ionicNavBarDelegate, $io
5555
var lastViewItemEle = {};
5656
var leftButtonsEle, rightButtonsEle;
5757

58-
//navEle[BACK_BUTTON] = self.createBackButtonElement(headerBarEle);
5958
navEle[BACK_BUTTON] = createNavElement(BACK_BUTTON);
6059
navEle[BACK_BUTTON] && headerBarEle.append(navEle[BACK_BUTTON]);
6160

@@ -79,6 +78,8 @@ function($scope, $element, $attrs, $compile, $timeout, $ionicNavBarDelegate, $io
7978
$element.append($compile(containerEle)($scope.$new()));
8079

8180
var headerBarCtrl = headerBarEle.data('$ionHeaderBarController');
81+
headerBarCtrl.backButtonIcon = $ionicConfig.backButton.icon();
82+
headerBarCtrl.backButtonText = $ionicConfig.backButton.text();
8283

8384
var headerBarInstance = {
8485
isActive: isActive,

0 commit comments

Comments
 (0)