@@ -521,6 +521,14 @@ export class NavControllerBase extends Ion implements NavController {
521
521
this . _sbTrns = transition ;
522
522
}
523
523
524
+ // transition start has to be registered before attaching the view to the DOM!
525
+ transition . registerStart ( ( ) => {
526
+ this . _trnsStart ( transition , enteringView , leavingView , opts , resolve ) ;
527
+ if ( transition . parent ) {
528
+ transition . parent . start ( ) ;
529
+ }
530
+ } ) ;
531
+
524
532
if ( enteringView && enteringView . _state === ViewState . INITIALIZED ) {
525
533
// render the entering component in the DOM
526
534
// this would also render new child navs/views
@@ -531,13 +539,6 @@ export class NavControllerBase extends Ion implements NavController {
531
539
console . debug ( 'enteringView state is not INITIALIZED' , enteringView ) ;
532
540
}
533
541
534
- transition . registerStart ( ( ) => {
535
- this . _trnsStart ( transition , enteringView , leavingView , opts , resolve ) ;
536
- if ( transition . parent ) {
537
- transition . parent . start ( ) ;
538
- }
539
- } ) ;
540
-
541
542
if ( ! transition . hasChildren ) {
542
543
// lowest level transition, so kick it off and let it bubble up to start all of them
543
544
transition . start ( ) ;
@@ -633,8 +634,9 @@ export class NavControllerBase extends Ion implements NavController {
633
634
// mainly for testing
634
635
let enteringName : string ;
635
636
let leavingName : string ;
637
+ let hasCompleted = transition . hasCompleted ;
636
638
637
- if ( transition . hasCompleted ) {
639
+ if ( hasCompleted ) {
638
640
// transition has completed (went from 0 to 1)
639
641
if ( transition . enteringView ) {
640
642
enteringName = transition . enteringView . name ;
@@ -671,7 +673,7 @@ export class NavControllerBase extends Ion implements NavController {
671
673
}
672
674
673
675
// congrats, we did it!
674
- resolve ( transition . hasCompleted , true , enteringName , leavingName , opts . direction ) ;
676
+ resolve ( hasCompleted , true , enteringName , leavingName , opts . direction ) ;
675
677
}
676
678
677
679
_insertViewAt ( view : ViewController , index : number ) {
0 commit comments