mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
Merge branch 'fix-previousTab' of https://github.com/manucorporat/ionic
# Conflicts: # src/components/tabs/tabs.ts
This commit is contained in:
@ -384,38 +384,34 @@ export class Tabs extends Ion implements AfterViewInit {
|
|||||||
// it's possible the tab is only for opening modal's or signing out
|
// it's possible the tab is only for opening modal's or signing out
|
||||||
// and doesn't actually have content. In the case there's no content
|
// and doesn't actually have content. In the case there's no content
|
||||||
// for a tab then do nothing and leave the current view as is
|
// for a tab then do nothing and leave the current view as is
|
||||||
if (!selectedTab.root) {
|
if (selectedTab.root) {
|
||||||
selectedTab.ionSelect.emit(selectedTab);
|
// At this point we are going to perform a page switch
|
||||||
this.ionChange.emit(selectedTab);
|
// Let's fire willLeave in the current tab page
|
||||||
return;
|
var currentPage: ViewController;
|
||||||
}
|
if (currentTab) {
|
||||||
|
currentPage = currentTab.getActive();
|
||||||
// At this point we are going to perform a page switch
|
currentPage && currentPage._willLeave(false);
|
||||||
// Let's fire willLeave in the current tab page
|
|
||||||
let currentPage: ViewController;
|
|
||||||
if (currentTab) {
|
|
||||||
currentPage = currentTab.getActive();
|
|
||||||
currentPage && currentPage._willLeave(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fire willEnter in the new selected tab
|
|
||||||
const selectedPage = selectedTab.getActive();
|
|
||||||
selectedPage && selectedPage._willEnter();
|
|
||||||
|
|
||||||
// Let's start the transition
|
|
||||||
opts.animate = false;
|
|
||||||
selectedTab.load(opts, () => {
|
|
||||||
this._tabSwitchEnd(selectedTab, selectedPage, currentPage);
|
|
||||||
if (opts.updateUrl !== false) {
|
|
||||||
this._linker.navChange(DIRECTION_SWITCH);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
// Fire willEnter in the new selected tab
|
||||||
|
const selectedPage = selectedTab.getActive();
|
||||||
|
selectedPage && selectedPage._willEnter();
|
||||||
|
|
||||||
|
// Let's start the transition
|
||||||
|
opts.animate = false;
|
||||||
|
selectedTab.load(opts, () => {
|
||||||
|
this._tabSwitchEnd(selectedTab, selectedPage, currentPage);
|
||||||
|
if (opts.updateUrl !== false) {
|
||||||
|
this._linker.navChange(DIRECTION_SWITCH);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedTab.ionSelect.emit(selectedTab);
|
||||||
|
this.ionChange.emit(selectedTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
_tabSwitchEnd(selectedTab: Tab, selectedPage: ViewController, currentPage: ViewController) {
|
_tabSwitchEnd(selectedTab: Tab, selectedPage: ViewController, currentPage: ViewController) {
|
||||||
selectedTab.ionSelect.emit(selectedTab);
|
|
||||||
this.ionChange.emit(selectedTab);
|
|
||||||
|
|
||||||
// Update tabs selection state
|
// Update tabs selection state
|
||||||
const tabs = this._tabs;
|
const tabs = this._tabs;
|
||||||
let tab: Tab;
|
let tab: Tab;
|
||||||
|
Reference in New Issue
Block a user