From c77c0e260a151ec38801aeabd60dff29e3386ba2 Mon Sep 17 00:00:00 2001 From: Thomas Burleson Date: Wed, 10 Sep 2014 17:32:34 -0500 Subject: [PATCH] fix(tabs): Tab pagination/selection now works properly on iOS Closes #220 Closes #231 --- src/components/tabs/js/pagination.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/components/tabs/js/pagination.js b/src/components/tabs/js/pagination.js index 3dabe54054c..1524eaff8a6 100644 --- a/src/components/tabs/js/pagination.js +++ b/src/components/tabs/js/pagination.js @@ -5,7 +5,7 @@ * * @returns {updatePagination} */ -function linkTabPagination(scope, element, tabsCtrl, $q, $materialEffects ) { +function linkTabPagination(scope, element, tabsCtrl, $q, $log, $materialEffects ) { // TODO allow configuration of TAB_MIN_WIDTH var TAB_MIN_WIDTH = 8 * 12; // Must match tab min-width rule in _tabs.scss @@ -66,6 +66,7 @@ function linkTabPagination(scope, element, tabsCtrl, $q, $materialEffects ) { // before we announce status [and potentially update focus] if ( pageChange ) { + tabsHeader.one($materialEffects.TRANSITIONEND_EVENT, function() { dfd.resolve(pageIndex); }); @@ -107,22 +108,14 @@ function linkTabPagination(scope, element, tabsCtrl, $q, $materialEffects ) { if ( page < 0 ) page = 0; if ( page > lastPage ) page = lastPage; + pagination.page = page; + pagination.startIndex = !pagination.active ? 0 : page * pagination.itemsPerPage; pagination.endIndex = !pagination.active ? lastTab : pagination.startIndex + pagination.itemsPerPage - 1; pagination.hasPrev = !pagination.active ? false : page > 0; pagination.hasNext = !pagination.active ? false : (page + 1) < pagination.pagesCount; slideTabButtons( -page * pagination.itemsPerPage * pagination.tabWidth ); - - if ( (updateTabSelection !== false) && !isTabInRange(scope.$selIndex) ) { - var index = (page > pagination.page) ? pagination.startIndex : pagination.endIndex; - - // Only change selected tab IF the current tab is not `in range` - tabsCtrl.selectAt( index ); - } - - pagination.page = page; - } /**