5

TL; DR Cómo deshabilitar temporalmente una Vista para poder cargar otra Vista de forma segura, luego cierre la Vista cargada para regresar a la Vista original?Backbone.js - Inhabilitación temporal (eventos en) Ver

que tienen el siguiente escenario: se abre

  1. usuario /search que carga SearchView.
  2. El usuario hace clic en un botón para realizar una búsqueda.
  3. La colección dentro de SearchView está llena de datos, la interfaz de usuario se actualiza para reflejar eso.
  4. El usuario hace clic en un elemento de resultado.
  5. SearchView está deshabilitado (solo necesita deshabilitar events?).
  6. ItemView se carga, mostrando los detalles del artículo.
  7. El usuario hace clic en un botón para cerrar ItemView.
  8. SearchView se vuelve a habilitar.

¿Cuál es la mejor manera de lograr el punto 5 y 8? Estoy pensando en llamar al SearchView.unbind() (para el punto 5) y al SearchView.bind() (para el punto 8).

Bonificación: Sería mejor si la solución es apilable. Es decir. cargas Ver una vista B que puede cargar la vista C. Cuando se cierra la vista C, View B es reinstalado, etc.

+0

¿por qué no use 'router.navigate' para mover al usuario a' ItemView' con los datos que ha seleccionado y descargue 'SearchView'. Esto lo haría para que no tengas que destrabar nada. – tkone

+0

Esto también daría el beneficio adicional de que el usuario puede hacer clic atrás para volver a los resultados de la búsqueda de los detalles del artículo – tkone

+0

@tkone Uso 'router.navigate' para actualizar la URL pero no puedo destruir' SearchView' como resultado de la búsqueda mostrado usando desplazamiento infinito. La posición de desplazamiento debe mantenerse. – wiradikusuma

Respuesta

9

Trate de llamar SearchView.undelegateEvents() para el punto 5, y luego SearchView.delegateEvents() para el punto 8.

Cuestiones relacionadas