Skip to content
This repository was archived by the owner on Sep 5, 2024. It is now read-only.

Commit 1a1095b

Browse files
fix(tabs): adds a delayed call to update the ink bar after a tab is removed
Closes #573.
1 parent 416079b commit 1a1095b

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

src/components/tabs/js/tabItemDirective.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ function MdTabDirective($mdInkRipple, $compile, $mdUtil, $mdConstant, $timeout)
107107
detachRippleFn();
108108
tabsCtrl.remove(tabItemCtrl);
109109
});
110+
element.on('$destroy', function () {
111+
//-- wait for item to be removed from the dom
112+
$timeout(function () {
113+
tabsCtrl.scope.$broadcast('$mdTabsChanged');
114+
}, 0, false);
115+
});
110116

111117
if (!angular.isDefined(attr.ngClick)) {
112118
element.on('click', defaultClickListener);

src/components/tabs/js/tabsController.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
angular.module('material.components.tabs')
55
.controller('$mdTabs', MdTabsController);
66

7-
function MdTabsController($scope, $element, $mdUtil, $$rAF) {
7+
function MdTabsController($scope, $element, $mdUtil, $timeout) {
88

99
var tabsList = $mdUtil.iterator([], false);
1010
var self = this;
@@ -69,21 +69,17 @@ function MdTabsController($scope, $element, $mdUtil, $$rAF) {
6969

7070
function remove(tab, noReselect) {
7171
if (!tabsList.contains(tab)) return;
72+
if (noReselect) return;
73+
var isSelectedItem = getSelectedItem() === tab,
74+
newTab = previous() || next();
7275

73-
if (noReselect) {
74-
// do nothing
75-
} else if (getSelectedItem() === tab) {
76-
if (tabsList.count() > 1) {
77-
select(previous() || next());
78-
} else {
79-
deselect(tab);
80-
}
81-
}
82-
76+
deselect(tab);
8377
tabsList.remove(tab);
8478
tab.onRemove();
8579

8680
$scope.$broadcast('$mdTabsChanged');
81+
82+
if (isSelectedItem) { select(newTab); }
8783
}
8884

8985
// Move a tab (used when ng-repeat order changes)

0 commit comments

Comments
 (0)