Knockout.js Utilice Knockout.js para diseñar y crear aplicaciones web dinámicas del lado del cliente que son extremadamente sensibles y fáciles de mantener. Este ejemplo Libro muestra cómo usar este marco ligero de JavaScript y su Model-View-ViewModel (MVVM) patrón. Aprenderá cómo construir su propio Datos, extender el marco con funciones reutilizables y trabajar con Un servidor para mejorar su aplicación de cliente con persistencia. En la final Capítulo, usted construirá un carro de la compra para ver cómo todo cabe juntos. Si usted es un desarrollador web con experiencia en JavaScript, HTML y CSS, Usted está listo para Knockout.
■ Aprenda a crear un modelo de vista ■ Enlazar HTML de datos y atributos y clases CSS y estilos ■ Entender vinculantes en la jerarquía contexto del Knockouts de gracia de datos ■ Use las propiedades que cambian dinámicamente a través de Interacción ■ Trabajar con las formas mediante el uso de varias ediciones diferentes ■ enlazar varios ViewModels en una sola página ■ Extender o adjuntar funciones personalizadas a los observables ■ Realizar las interacciones del lado del servidor con jQuery ■ Asignar un objeto JavaScript o aplicar los datos JSON a un nuevo objeto
Jamie Munro ha estado desarrollando sitios web y aplicaciones web por más de 15 años. Durante los últimos seis años, ha sido mentor de jóvenes desarrolladores para Mejorar sus habilidades de desarrollo web. Jamie sitio web (http: //www.webistrate.com). ofrece ejemplos para ayudar a los desarrolladores web a ampliar su experiencia.
" Este libro es un gran recurso para cualquier desarrollador buscando hacer su de la aplicación web experiencia pop presenta las características y beneficios de Knockout.js con ejemplos extensos y explicaciones en profundidad. usted también se beneficia del autor recomendaciones y consejos procedentes de lecciones aprendidas su experiencia en la construcción aplicaciones web. “ -Steven Kennedy Desarrollador Senior de Software en Fusebill
Knockout.js Creación de aplicaciones web dinámicas del lado del cliente
Jamie Munro
Knockout.js De Jamie Munro Copyright © 2015 Jamie Munro. Todos los derechos reservados. Impreso en los Estados Unidos de América. Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. Los libros de O'Reilly se pueden comprar para uso educativo, comercial o de promoción de ventas. Las ediciones en línea son También disponible para la mayoría de los títulos ( http://safaribooksonline.com ). Para obtener más información, póngase en o con nuestra empresa / departamento de ventas institucionales: 800-998-9938 o
[email protected]. Editor: Meg Foley Editor de Producción: Kara Ebrahim Corrector de estilo: Gillian McGarvey Corrector de pruebas: Marta Justak
Indexador: Judy McConville Diseñador de interiores: David Futato Cover Designer: Ellie Volckhausen Illustrator: Rebecca Demarest
Diciembre 2014:
Primera edición
Historial de revisiones para la primera edición 2014-12-08: Primera versión Ver http://oreilly.com/catalog/errata.csp?isbn=9781491914311 para los detalles de la versión. El logotipo de O'Reilly es una marca registrada de la imagen de portada de un negro O'Reilly Media, Inc. Knockout.js,Canguro de árbol, y el vestido comercial relacionado son marcas registradas de O'Reilly Media, Inc. Aunque el editor y el autor han utilizado esfuerzos de buena fe para garantizar que la Instrucciones contenidas en este trabajo son exactas, el editor y el autor renuncian a toda responsabilidad por errores u omisiones, incluyendo, sin limitación, responsabilidad por los daños resultantes del uso de O la confianza en este trabajo. El uso de la información e instrucciones contenidas en este trabajo está en su propio riesgo. Si cualquier muestra de código u otra tecnología que este trabajo contiene o describe está sujeto a código abierto Licencias o los derechos de propiedad intelectual de terceros, es su responsabilidad asegurarse de que su uso Cumple con dichas licencias y / o derechos.
Este libro está dedicado a mi familia. Espero que aprendas, como yo, que cuando Trabajar duro y poner su mente a algo, usted puede lograr cualquier cosa!
Tabla de contenido
Prefacio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vii 1.
Introducción a KnockoutJS. . . . . . . . . ……………. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Sintaxis de vinculación de datos 1 Ejemplo de encuadernación de datos 2 ¿Qué es MVVM? 3 Creación de un ViewModel 3 Modelos de vista orientados a objetos 4 ViewModels con parámetros 5
2.
El entradas y salidas de enlace de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Datos HTML vinculantes 7 Atributos HTML de enlace, clases CSS y 8 estilos CSS Encuadernación de datos basada en la 9 condición
3.
Comprender el Contexto enlace de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 11 Foreach encuadernación 12 Foreach Callbacks (Eventos) 15 Con encuadernación 17
4.
dinámicamente cambiar las propiedades. . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Definición de un observable 21 PuraComputado Observables 23 Mostrando y ocultando elementos 24 Adición y eliminación de elementos 26 Cuándo utilizar Observables 28
5.
Trabajar con formularios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Fijaciones de Datos de Formulario 31 Fijaciones de datos de eventos 33 Escuchando los cambios 34 Validación de formularios discreta 36
6.
Múltiples ViewModels, Fijaciones de datos personalizados y plantillas. . . . . . . . . . . . . . . . . . . 39 Vinculación de varios modelos de vista 39 Vinculación a un editor WYSIWYG 40 Vinculación a una plantilla eliminatoria 43
7.
observables potenciador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Extendiendo observables 47 Adición de funciones personalizadas a 49 observables Observaciones de limitación de la tasa 51
8.
Interacción del lado del servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Envío de datos 55 Recepción de datos 58
9.
El Mapping Plugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Mapa desde un objeto 63 Mapa de JSON (o un servidor) 65 Observando e ignorando propiedades 68 específicas
10. Un ejemplo práctico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Construcción de un carrito de compras 71 11. Acontinuación pasos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
La sencillez de Knockout 79 El contexto del 80 Actualizaciones de página para actualizaciones de contenido 80 Conclusión 81 12. Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Prefacio
Aplicaciones dinámicas del lado del cliente Interfaces de (UI) son cada vez más populares, al igual que la web sensible diseño. Sitios web extremadamente populares como Gmail, Facebook y Twitter han adoptado Aplicaciones cliente-lado extremadamente responsivas. Rara vez ves una actualización de página completa; En su lugar, el contenido se carga en línea. Más importante, su contexto se mantiene y no se ven obligados a saltar entre varias páginas. Un ejemplo perfecto de esto es Gmail. Irónicamente, vino de escribir este libro. yo era Revisar un correo electrónico de mi editor y revisor técnico. Tengo el correo electrónico abierto Y quería responder a ella. Debido a que Gmail colocó mi respuesta en línea, podría fácilmente Revisar el correo electrónico y escribir mi respuesta al mismo tiempo, sin necesidad de saltar O tienen dos ventanas abiertas. KnockoutJS hace que la implementación de aplicaciones web como ésta sea rápida, eficiente y Importante, fácil de mantener!
Instalación de KnockoutJS KnockoutJS hizo su debut en julio de 2010. Fue lanzado como un código abierto Proyecto del autor Steve Sanderson. Ahora está siendo mantenido por el código abierto comunidad. La versión 3.0 fue lanzada a finales de 2013. Sigue evolucionando diariamente con nuevas características, mejoras y correcciones de errores. Todo Los ejemplos de este libro utilizan la versión 3.2 (la versión estable). La configuración de KnockoutJS es muy simple. Comience visitando las descargas KnockoutJS la página . Puede descargar la versión minificada de Knockout haciendo clic derecho (Ctrl + Click para Mac) y seleccionando la opción "Guardar enlace como ...".
Vii
Sugiero crear una nueva carpeta para todos los ejemplos de código de este libro. Dentro de eso carpeta, crea una subcarpeta llamada js y coloque el archivo nocaut-3.2.0.js interior.
¿Ha cambiado la versión KnockoutJS? Es bastante normal que los frameworks de código abierto populares evolucionen bastante rápido. Si la versión actual de Knockout no es 3.2 cuando Descargarlo, los ejemplos de este libro deben continuar trabajo. Sin embargo, deberá actualizar lo siguiente: <script type='text/javascript' src='js/knockout3.2.0.js'>
A: <script type='text/javascript' src='js/knockout-<current-version>.js'>
Usted tendrá que reemplazar
con el valor correcto. Si desea utilizar la versión 3.2 como los ejemplos de este libro, puede visitar el proyecto KnockoutJS en Github y apoderarse de su versión de elección. Una vez descargado el framework Knockout, cree una página HTML que cargue el Marco, como en Ejemplo P-1 .
Ejemplo P - 1. Instalación de KnockoutJS
Installing KnockoutJS 4f3k6y <script type='text/javascript' src='js/knockout-3.2.0.js'>