underscore template backbone javascript backbone.js browser-history

javascript - template - github backbone



Backbone.history.start() bloquea el botón Atrás para que no salga de la página (1)

El problema es que app.html no está haciendo nada por sí mismo; y así, de alguna manera puede romper la aplicación si se navega.

En este caso, lo que podría hacer es redirigir la ruta raíz a otra, simplemente utilícela como la página predeterminada:

routes: { "": "search", "results": "results" }

Me he encontrado con esto en algunas aplicaciones ahora, así que me pregunto si estoy haciendo algo mal con la historia de Backbone. Esta es la situación ...

Tengo dos páginas, digamos:

index.html app.html

La página de índice es solo una página HTML plana y normal con un enlace a app.html . En la página de la aplicación, se llama a Backbone.history.start() para activar la administración de estado de hash, que se usa para alternar entre dos vistas en la página de la aplicación, por ejemplo:

app.html#search app.html#results

Por lo tanto, navegar de ida y vuelta entre las páginas #search y #results funciona muy bien. No hay problemas allí. El problema ocurre cuando intentas utilizar el botón Atrás para retroceder hasta index.html . El camino de regreso a la página de índice implica detenerse en app.html (sin estado de hash), en el cual el enrutador de Backbone diligentemente rellena el estado de hash faltante y lo regresa a app.html#search . De nuevo, al hacer clic en el botón Atrás irá a app.html , que app.html llenar el estado de hash faltante ... básicamente, ahora está atascado en un bucle y no puede regresar de la página. Este mismo comportamiento ocurre cuando se usa el estado de inserción.

Esto parece ser un problema potencialmente común con las aplicaciones que automáticamente activan su propio sistema de enrutamiento sobre una URL de página predeterminada. ¿Alguien sabe de una buena manera de evitar esto?