2011-03-31 13 views
15

He estado jugando con backbone.js durante los últimos días, editando el ejemplo Todos y escribiendo mi propia versión.búsqueda inicial de datos backbone.js

Ahora estoy buscando crear un controlador con múltiples rutas, pero lo que encontré después de seguir el ejemplo de Todos es llamar al Todos.fetch(), hace que los elementos sean re-renderizados. Creo que está llamando al evento de actualización?

La documentación Backbone.js dice:

Tenga en cuenta que traiga no debe utilizarse para poblar colecciones de carga de la página - todos los modelos necesarios en tiempo de carga ya debería estar bootstrap en su lugar. fetch está diseñado para modelos de carga lenta para interfaces que no se necesitan de inmediato: por ejemplo, documentos con colecciones de notas que se pueden abrir y cerrar.

¿Cuál es la mejor manera de cargar datos? ¿Puedo usar un uso de una llamada ajax para obtener los datos y pasarlos al crear una instancia del controlador principal? ¿Qué tal si tuviera que cambiar la página y mostrar una nueva vista? ¿Llamaría simplemente a la función fetch()?

Respuesta

7

Este bit de documentación está ahí para recordarle que debe cargar todos los datos en la carga de la página inicial y utilizar la recuperación para todas las cargas posteriores.

Usted puede tener un código como éste:

MyCollection = new Collection({some json data}); 

Mucho más rápido que una carga de la página luego un par de petición para cargar los datos.

+0

Gracias, supongo que esto sería en la inicialización del controlador? – Webster

+0

En la etiqueta de script en la página inicial. – Julien

+0

¿Luego pasaría los datos al controlador? ¿No tiene más sentido ponerlo en el init dentro del controlador? – Webster

3

Im un poco confundido en la redacción del documento, así, pero ir a buscar es la forma de decirle al Colección o Modelo ir al servidor y obtener los datos ya sea a través de su propia función de sincronización o Backbone. sync que ya internamente usa ajax y puede pasar el resultado a su éxito o función de error.

En cuanto al ejemplo Todos que usted mencionó, así es como la colección está diseñada para funcionar. Actualiza los modelos y luego activa el evento de "actualización" que puede obligar a volver a renderizar tu vista, como dijiste.

Recomiendo mirar el código Backbone.js. Está muy bien documentado y el flujo de eventos y llamadas a los métodos es muy fácil de entender debido a eso.

+1

Creo que después de mirar otro código y la respuesta de Juliens necesito hacer mi propia llamada AJAX en mi controlador inicial. – Webster

+2

¿Es eso lo que terminas haciendo después de todo ... encontraste algo mejor ... Me imagino que la columna vertebral especificaría algún método para hacerlo, incluso es solo una llamada ajax solamente ... Estoy en la misma situación ahora –

Cuestiones relacionadas