2012-01-07 23 views
10

¿Cómo se organizan las clases del modelo de visualización? Clases separadas o una gigante (¿y cómo modularizar la gigante)? ¿Cómo cambiar entre 'páginas' (con datos cargados con ajax por supuesto)? ¿Cómo cargar plantillas para backbonejs después de cargar la página? Los ejemplos y tutoriales se apreciarán siempre que sean más avanzados que los de su sitio.¿Cómo hacer una aplicación de una sola página con knockout.js?

+1

Mirando hacia adelante a algunas respuestas aquí. – Domenic

Respuesta

10

Guau, muchas preguntas, todo en uno. Trataré de golpearlos aquí, pero una advertencia de que estoy escribiendo un curso completo para Pluralsight en Knockout ... así que no puedo profundizar en la necesidad de un cuadro de comentarios :)

1) Cómo ¿organizas clases de vista modelo?

Creo que te refieres a las clases de view-model. Recomiendo crear un modelo de vista que contenga todas las propiedades y métodos que requiere la página. Coloque el modelo de vista en un gabinete y mantenga todo ese javascript en su propio archivo. Por ejemplo, si tiene la página customers.html para su estructura, puede tener customers.js para con su modelo de vista.

2) Clases separadas o una gigante (¿y cómo modularizar la gigante)?

Cada modelo de vista está en su propio archivo. En general, 1 muestra el modelo por archivo js (pero ciertamente podría poner los interrelacionados en el mismo archivo). Además, en general 1 vista modelo por vista (pero, de nuevo, puede ir más allá de esto en algunos casos).

Para los modelos, puede crearlos todos en un solo archivo de modelos si lo desea, o ponerlos en archivos separados. Para aplicaciones más pequeñas, me gustan los archivos 1 models.js, ya que la mayoría de los modelos son bastante sencillos, pequeños y contienen propiedades simples (aunque observables). Pero aquí, realmente es una cuestión de elección.

3) ¿Cómo cambiar de página?

El mecanismo no es específico de Knockout, por lo que puede utilizar enlaces o incluso controles personalizados (menús, pestañas, etc.). Tu llamada. Una vez que decide cómo navegar a una página diferente, supongo que necesita pasar datos entre los 2 para el contexto. Una forma de hacerlo es en la cadena de consulta con una ID, otra forma es el almacenamiento local (para artículos más grandes que necesita almacenar en el cliente), o hay otras opciones también. Nuevamente, realmente depende de lo que necesita pasar entre las páginas. Muchas veces diseño las páginas para que sean autosuficientes, así que no necesito pasar mucho entre ellas. Para lo que necesito pasar, intento enviar lo menos que puedo y buscar datos basados ​​en claves (en llamadas ajax o almacenamiento local ... dondequiera que vivan los datos).

Espero que esto ayude un poco.

ACTUALIZACIÓN: Here is the link I mentioned to my Knockout.js course on Pluralsight

+0

¡Gracias por la respuesta! Solo para aclarar, piensas que es mejor tener un modelo de vista con ko.applyBindings para cada 'página' (entre comillas, ya que es una aplicación de una sola página, pero ya sabes, cada vista única). – sdfadfaasd

+1

Parece que podría tener una página donde hay múltiples "regiones" (o mini vistas) en la página. En ese caso, podría mirarlo ya que tiene muchas vistas, y cada una de esas vistas tiene un modelo de vista ... luego hay un modelo de vista maestro/principal para todo el conjunto de modelos de vista. Pero estoy haciendo muchas suposiciones aquí. Es posible que desee comenzar con un modelo de vista maestra para la aplicación de una sola página y simplemente comience a agregar modelos de subvista adicionales según sea necesario. –

Cuestiones relacionadas