Emberjs async routing

Mi problema está relacionado con los problemas.# 1183 y# 1268 de emberjs.

Tengo elemento dinámico en las rutas. Todo está bien si navego por la aplicación. El problema es cuando recargo una página o cuando escribo la URL. En ese caso, la aplicación ingresa en la función de deserialización y carga y objeto por su ID, pero esta carga es asíncrona.

En cuestión# 1268 Lukemelia dice"tendrá que hacer que el resultado de su método de deserialización implemente el patrón de promesas".

Lo intento pero siempre pierdo el contexto. Mi código es similar a:

page: Ember.Route.extend
route: '/:alias'
deserialize: (router, params) -> page=App.Page.find(params.alias)
$.when( page.get("isLoaded") ).done( () -> console.debug(page.get("alias")) return page)
loading: Em.State.extend

El enrutador pasa al estado de carga pero luego regresa sin datos de contexto. Creo que estoy haciendo algo mal. Posiblemente todo está mal.

Alguien puede ayudarme? ¿Hay y ejemplo?

¡Gracias!

Resuelto:

page: Ember.Route.extend
    route: '/:id'
    deserialize: (router, params) ->
        page=App.Page.find(params.id})
        deferred = $.Deferred()
        page.addObserver("isLoaded", -> deferred.resolve(page))
        return deferred.promise()
    serialize: (router, page) ->
        return {id: page.get("id") }
    connectOutlets: (router, page) ->
        router.get('applicationController').connectOutlet
            context: page
            name: "page"
loading: Em.State.extend
    connectOutlets: (router, context) ->
        router.get('applicationController').connectOutlet(context: context, name: "loading")

Mientras la página se está cargando, el estado activo se está cargando, cuando la página termina de cargarse, el enrutador carga el estado de la página automáticamente.

Espero que esto pueda ayudar a alguien

Respuestas a la pregunta(1)

Su respuesta a la pregunta