fix(nav): push-pop pages too quickly

fixes #8319
This commit is contained in:
Manu Mtz.-Almeida
2016-09-30 20:15:31 +02:00
parent 50afa15543
commit 9b650229f7
2 changed files with 7 additions and 5 deletions

View File

@ -623,7 +623,7 @@ export class NavControllerBase extends Ion implements NavController {
const duration = trns.getDuration(); const duration = trns.getDuration();
// set that this nav is actively transitioning // set that this nav is actively transitioning
this.setTransitioning(true, duration); this.setTransitioning(true, duration + ACTIVE_TRANSITION_OFFSET);
if (!trns.parent) { if (!trns.parent) {
// this is the top most, or only active transition, so disable the app // this is the top most, or only active transition, so disable the app
@ -959,3 +959,4 @@ let ctrlIds = -1;
const DISABLE_APP_MINIMUM_DURATION = 64; const DISABLE_APP_MINIMUM_DURATION = 64;
const ACTIVE_TRANSITION_MAX_TIME = 5000; const ACTIVE_TRANSITION_MAX_TIME = 5000;
const ACTIVE_TRANSITION_OFFSET = 200;

View File

@ -30,7 +30,7 @@ export class ViewController {
private _cntRef: ElementRef; private _cntRef: ElementRef;
private _hdrDir: Header; private _hdrDir: Header;
private _ftrDir: Footer; private _ftrDir: Footer;
private _hidden: string; private _isHidden: boolean = false;
private _leavingOpts: NavOptions; private _leavingOpts: NavOptions;
private _nb: Navbar; private _nb: Navbar;
private _onDidDismiss: Function; private _onDidDismiss: Function;
@ -273,10 +273,11 @@ export class ViewController {
// doing checks to make sure we only update the DOM when actually needed // doing checks to make sure we only update the DOM when actually needed
if (this._cmp) { if (this._cmp) {
// if it should render, then the hidden attribute should not be on the element // if it should render, then the hidden attribute should not be on the element
if (shouldShow && this._hidden === '' || !shouldShow && this._hidden !== '') { if (shouldShow === this._isHidden) {
this._hidden = (shouldShow ? null : ''); this._isHidden = !shouldShow;
let value = (shouldShow ? null : '');
// ******** DOM WRITE **************** // ******** DOM WRITE ****************
renderer.setElementAttribute(this.pageRef().nativeElement, 'hidden', this._hidden); renderer.setElementAttribute(this.pageRef().nativeElement, 'hidden', value);
} }
} }
} }