|
1 | 1 | /** |
2 | 2 | * angular-bootstrap-scrolling-tabs |
3 | | - * @version v1.1.0 |
| 3 | + * @version v1.2.0 |
4 | 4 | * @link https://github.com/mikejacobson/angular-bootstrap-scrolling-tabs |
5 | 5 | * @author Mike Jacobson <[email protected]> |
6 | 6 | * @license MIT License, http://www.opensource.org/licenses/MIT |
|
113 | 113 | var ehd = this, |
114 | 114 | stc = ehd.stc, |
115 | 115 | $tabsContainer = stc.$tabsContainer, |
116 | | - tabContentCloneCssClass = 'scrtabs-tab-content-clone', |
117 | | - $tabContentInMovableContainer = $tabsContainer.find('.scrtabs-tabs-movable-container .tab-content'), |
118 | | - $currTcClone, |
119 | | - $newTcClone; |
120 | | - |
121 | | - // if the tabs won't be changing, we can just move the |
122 | | - // the .tab-content outside the scrolling container right now |
123 | | - if (!options.isWatchingTabs) { |
124 | | - $tabContentInMovableContainer.show().appendTo($tabsContainer); |
125 | | - return; |
126 | | - } |
| 116 | + $movableContainer = $tabsContainer.find('.scrtabs-tabs-movable-container'), |
| 117 | + $tabContentInMovableContainer = $movableContainer.find('.tab-content'), |
| 118 | + uibTabsetController = $movableContainer.find('> div').eq(0).data('$uibTabsetController'); |
127 | 119 |
|
128 | | - /* if we're watching the tabs for changes, we can't just |
129 | | - * move the .tab-content outside the scrolling container because |
130 | | - * that will break the angular-ui directive dependencies, and |
131 | | - * an error will be thrown as soon as the tabs change; |
132 | | - * so we leave the .tab-content where it is but hide it, then |
133 | | - * make a clone and move the clone outside the scroll container, |
134 | | - * which will be the visible .tab-content. |
135 | | - */ |
136 | | - |
137 | | - // create new clone |
138 | | - $newTcClone = $tabContentInMovableContainer |
139 | | - .clone() |
140 | | - .addClass(tabContentCloneCssClass); |
141 | | - |
142 | | - // get the current clone, if it exists |
143 | | - $currTcClone = $tabsContainer.find('.' + tabContentCloneCssClass); |
144 | | - |
145 | | - if ($currTcClone.length) { // already a clone there so replace it |
146 | | - $currTcClone.replaceWith($newTcClone); |
147 | | - } else { |
148 | | - $tabsContainer.append($newTcClone); |
149 | | - } |
| 120 | + $tabContentInMovableContainer.show().appendTo($tabsContainer); |
150 | 121 |
|
| 122 | + if (uibTabsetController) { |
| 123 | + $tabContentInMovableContainer.data('$uibTabsetController', uibTabsetController); |
| 124 | + } |
151 | 125 | }; |
152 | 126 |
|
153 | 127 | p.refreshAllElementSizes = function () { |
|
195 | 169 | return actionsTaken; |
196 | 170 | }; |
197 | 171 |
|
198 | | - p.removeTranscludedTabContentOutsideMovableContainer = function () { |
199 | | - var ehd = this, |
200 | | - stc = ehd.stc, |
201 | | - $tabsContainer = stc.$tabsContainer; |
202 | | - |
203 | | - $tabsContainer.find('.scrtabs-tab-content-outside-movable-container').remove(); |
204 | | - }; |
205 | | - |
206 | 172 | p.setElementReferences = function () { |
207 | 173 | var ehd = this, |
208 | 174 | stc = ehd.stc, |
|
731 | 697 | isOnTabsRefresh: options.isWatchingTabs |
732 | 698 | }); |
733 | 699 | } |
734 | | - |
735 | | - |
736 | 700 | }, 100); |
737 | 701 | }; |
738 | 702 |
|
739 | | - p.removeTranscludedTabContentOutsideMovableContainer = function() { |
740 | | - var stc = this, |
741 | | - elementsHandler = stc.elementsHandler; |
742 | | - |
743 | | - elementsHandler.removeTranscludedTabContentOutsideMovableContainer(); |
744 | | - }; |
745 | | - |
746 | 703 | /** |
747 | 704 | * Handles control arrows classnames |
748 | 705 | * |
|
928 | 885 | } |
929 | 886 |
|
930 | 887 | if (!isWrappingAngularUITabset) { |
931 | | - scrollingTabsControl.removeTranscludedTabContentOutsideMovableContainer(); |
932 | 888 | scrtc.hasTabContentOutsideMovableContainer = false; |
933 | 889 | } |
934 | 890 |
|
|
962 | 918 | (attrs.watchTabs && attrs.watchTabs.toLowerCase() === 'true')) { |
963 | 919 |
|
964 | 920 | if (isWrappingAngularUITabset) { |
965 | | - scrollingTabsControl.removeTranscludedTabContentOutsideMovableContainer(); |
966 | 921 | scrtc.hasTabContentOutsideMovableContainer = false; |
967 | 922 | } |
968 | 923 |
|
|
0 commit comments