ui-router will run your ui-view route change ui-view at the same time as the inbound view. Thus, you get the previous ui-view , which is still displayed while the next ui-view is displayed, and if you're reviving the view, then there will be such a transition time between the old view and the new one. you should think about rendering the new ui-view until the old one finishes the animation (before reviving the new one)
I looked at ui-router $rootScope state change events to use this ( https://github.com/angular-ui/ui-router/wiki#state-change-events ).
## Hold off on the state change, until current (previous) state has finished animating out $rootScope.$on '$stateChangeStart', (event, toState, toParams, fromState, fromParams) -> console.log "state change start", arguments $rootScope.$on '$stateChangeSuccess', (event, toState, toParams, fromState, fromParams) -> console.log "state change success", arguments
also look at this example http://homerjam.imtqy.com/angular-ui-router-anim-in-out . they created a module that connects to ui-view and splits it into enter and leave , where you can start the animation in (new view) after exiting the animation (old view) http://homerjam.imtqy.com/angular-ui- router-anim-in-out / anim-in-out.js
this person explains what happens with duplication of changes ui-view https://youtu.be/W89DYSthCTQ?t=345
source share