Skip to content

Instantly share code, notes, and snippets.

@denisnazarov
Last active December 28, 2015 21:19
Show Gist options
  • Save denisnazarov/7563981 to your computer and use it in GitHub Desktop.
Save denisnazarov/7563981 to your computer and use it in GitHub Desktop.
Application.LoadingTransitionMixin = Ember.Mixin.create
afterModel: (model, transition) ->
previousRoute = @get('router').previousRoute
if previousRoute
@get('router').previousRoute.cleanUp()
cleanUp: ->
deferredPromise = new Ember.Deferred()
@controller.set('cleanUpPromise', deferredPromise)
deferredPromise
actions:
willTransition: (transition) ->
@get('router').previousRoute = this
Application.RouteFadeView = Ember.View.extend
cleanUp: (->
cleanUpPromise = @get('controller.cleanUpPromise')
if cleanUpPromise
@fade("0", =>
cleanUpPromise.resolve()
)
).observes('controller.cleanUpPromise')
fade: (opacity, callback) ->
currentOpacity = @$().css('opacity')
return callback() if currentOpacity == opacity
@$().css('opacity', opacity)
@$().on('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd', =>
@$().off('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd')
Ember.run ->
callback()
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment