AngularJS Desarrolle hoy las aplicaciones web de mañana
Presentación
Los autores presentan la noción de SPA y recorren las funcionalidades aportadas por el framework, como la estructuración de una aplicación, el binding o los templates de vistas. En primer lugar, el lector descubrirá las bases que permiten crear una aplicación web de página única, o SPA, así como los mecanismos fundamentales de AngularJS. Aprenderá, a continuación, cómo estructurar su aplicación y cómo implementar la navegación en una SPA. Aprenderá, también, cómo enriquecer el lenguaje HTML mediante directivas creando su propio DSL, cómo gestionar la validación de formularios, cómo localizar su aplicación, y a continuación cómo dialogar con el servidor mediante peticiones HTTP.
Se dedica un capítulo a las pruebas unitarias y a las pruebas de integración, que permiten aportar una gran robustez a la aplicación AngularJS y asegurar que no existen regresiones. Se dedica, también, un capítulo a las tecnologías complementarias a AngularJS que permiten, por ejemplo, mejorar la robustez y la productividad con TypeScript o que permiten crear fácilmente una aplicación móvil nativa a partir de una aplicación web con Apache Cordova.
Por último, se explican al usuario los mecanismos avanzados vinculados con AngularJS, en particular el principio de ciclo digest y su impacto en la actualización de bindings o cómo optimizar su aplicación.
Existen elementos complementarios para su descarga en el sitio web www.ediciones-eni.com.
Los capítulos del libro:
Prólogo – Introducción a AngularJS – Mi primera aplicación AngularJS – Fundamentos de AngularsJS – Estructurar una aplicación – Promesas y peticiones HTTP – Navegar en una aplicación AngularsJS – Formularios y validación – Internacionalización y localización – Las directivas – Nociones avanzadas – Probar una aplicación – Más allá de AngularJS
Índice
-
Prólogo
- 1. ¿Por qué este libro?
- 2. ¿A quién se dirige este libro?
- 3. Estructura del libro
- 4. Agradecimientos
-
Introducción a AngularJS
- 1. Introducción
- 2. Single Page Application
- 3. AngularJS
- 3.1 Organización de la aplicación
- 3.2 Mecanismos técnicos
- 3.3 Versiones
-
Mi primera aplicación AngularJS
- 1. Introducción
- 2. Referenciar AngularJS
- 3. Definir el alcance de AngularJS
- 4. Creación de una aplicación
- 4.1 Modelo
- 4.2 Controlador
- 4.3 Vista
- 5. Aplicación completa
-
Fundamentos de AngularJS
- 1. Introducción
- 2. Introducción a los módulos
- 3. Controlador y modelo
- 4. Vistas y Binding
- 4.1 Binding
- 4.2 Mostrar y ocultar elementos
- 4.3 Enlaces
- 4.4 Estilos
- 4.5 Listas
- 4.6 Eventos HTML
- 4.7 Reaccionar a los cambios del modelo
- 4.8 Directivas
- 4.9 Expresiones
- 4.10 Comunicación en una aplicación
- 4.11 Unobtrusive JavaScript
- 5. Formateo de los datos
- 5.1 Uso de filtros
- 5.2 Creación de filtros
- 5.3 Ejemplos de filtros
-
Estructurar una aplicación
- 1. Introducción
- 2. Módulos
- 2.1 Creación y uso de un módulo
- 2.2 ¿Cuántos módulos utilizar?
- 2.3 Carga de un módulo
- 3. Inyección de dependencias
- 3.1 Declaración y resolución de dependencias
- 3.2 Uso del servicio de inyección
- 4. Servicios
- 4.1 Uso de servicios
- 4.2 Creación de servicios
- 4.3 Providers
- 5. Constantes
- 6. Estructura de los archivos
- 6.1 Aplicación sencilla
- 6.2 Aplicación compleja
-
Promesas y peticiones HTTP
- 1. Introducción
- 2. Promesa, el fin de los callbacks
- 2.1 Promise
- 2.2 Creación de una promesa
- 2.3 Interacciones con una promesa
- 3. Comunicación con el servidor
- 3.1 Servicio $http
- 3.1.1 Realizar una petición HTTP
- 3.1.2 Métodos abreviados
- 3.1.3 Proveedor $httpProvider
- 3.1.4 Encabezados HTTP
- 3.1.5 Transformación de la petición y de la respuesta
- 3.1.6 Caché
- 3.1.7 Interceptores
- 3.1.8 Timeout
- 3.1.9 Encapsulación de las llamadas en un servicio
- 3.2 Servicio $resource
- 3.2.1 Creación de un recurso
- 3.2.2 Recuperación de recursos
- 3.2.3 Interacción con un recurso
- 3.2.4 Métodos específicos
- 3.2.5 Encapsulación en un servicio
- 3.1 Servicio $http
-
Navegar en una aplicación AngularJS
- 1. Introducción
- 2. Navegación en el seno de la aplicación
- 2.1 Declaración de las rutas
- 2.1.1 Paso de parámetros en una ruta
- 2.1.2 Ejecución de una acción previa a la navegación
- 2.2 Definir la ubicación de las vistas
- 2.3 Navegar en la aplicación
- 2.3.1 Enlaces de navegación
- 2.3.2 Servicio $location
- 2.4 Eventos de navegación
- 2.5 Modo HTML 5
- 2.1 Declaración de las rutas
- 3. Navegar fuera de la aplicación
-
Formularios y validación
- 1. Introducción
- 2. Formularios
- 2.1 Directiva form
- 2.2 Envío de un formulario
- 2.2.1 Directiva ngSubmit
- 2.2.2 Directiva ngClick
- 2.2.3 ¿ngClick o ngSubmit?
- 3. Validación
- 3.1 Declaración de reglas de validación
- 3.2 Control de validación de los campos
- 3.3 Detección de modificaciones
- 3.4 Módulo ngMessages
- 4. Formularios con listas
- 5. Ejemplo
-
Internacionalización y localización
- 1. Introducción
- 2. Internacionalización de datos no textuales
- 2.1 Reglas de localización
- 2.2 Filtros y directivas
- 3. Internacionalización de datos textuales
- 3.1 Principio general
- 3.2 Creación de archivos de recursos
- 3.3 Creación del servicio
- 3.4 Creación del filtro
- 3.5 Gestión del multilingüismo
-
Las directivas
- 1. Introducción
- 2. Crear una directiva
- 3. Nomenclatura de una directiva
- 4. Restricción de los modos de declaración
- 5. Uso de templates
- 5.1 Propiedad template
- 5.2 Propiedad templateUrl
- 5.3 Precarga de templates
- 5.4 Inserción del template en la vista
- 5.5 Modo de inserción
- 6. Transclusión
- 7. Fases de ejecución de una directiva
- 7.1 Link
- 7.2 Compile
- 8. Definir prioridades
- 8.1 Propiedad priority
- 8.2 Propiedad terminal
- 9. Uso de scopes
- 9.1 Scope en curso
- 9.2 Nuevo scope
- 9.3 Scope aislado
- 10. Controladores
- 10.1 Declarar un controlador
- 10.2 Declarar un vínculo hacia una directiva
- 10.3 Comunicación con una directiva
- 10.4 Interactuar con la directiva ngModel
- 11. Ejemplos de directivas
- 11.1 Integrar un componente jQuery
- 11.2 Crear un componente de puntuación
- 11.3 Crear un componente acordeón
- 11.4 Optimización con compile
-
Nociones avanzadas
- 1. Introducción
- 2. Funcionamiento del binding
- 2.1 Ciclo digest
- 2.2 ¿Cuándo y cómo iniciar un ciclo digest?
- 3. Rendimiento y optimización
- 3.1 JavaScript: un lenguaje event-driven
- 3.2 Demasiado watch mata el watch
- 3.2.1 Tener una función watch simple
- 3.2.2 Dar preferencia a ngChange frente al watch
- 3.2.3 Dar preferencia al binding one-time
- 3.3 Limitar el uso de filtros en las vistas
- 3.4 Manipular el DOM en las directivas
- 3.5 Deshabilitar la información de debug
- 3.6 ¿Cómo prevenir problemas de rendimiento?
- 4. Animación de la aplicación
- 4.1 Animaciones CSS 3
- 4.1.1 Transiciones
- 4.1.2 Keyframes
- 4.2 Módulo ngAnimate
- 4.1 Animaciones CSS 3
- 5. Insertar contenido HTML
- 6. Indexación en los motores de búsqueda
- 6.1 Indicar que la aplicación web posee contenido AJAX
- 6.2 Devolver una página estática desde el servidor
- 6.3 Configuración de la aplicación AngularJS
- 7. Hacer su aplicación accesible
-
Probar una aplicación
- 1. Introducción
- 2. Pruebas unitarias
- 2.1 Herramientas
- 2.2 Karma
- 2.3 Funcionamiento de Jasmine
- 2.4 Comprobar el resultado de una prueba
- 2.5 Instalación del framework Jasmine
- 2.6 Prueba sencilla
- 2.7 Espías
- 2.8 Módulo ngMocks
- 2.9 Prueba de un controlador sencillo
- 2.10 Probar una directiva
- 2.11 Probar un servicio
- 3. Introducción a los mocks
- 3.1 Mock $http
- 3.2 Mock $httpBackend
- 4. Pruebas de integración
- 4.1 Uso de Protractor
- 4.2 Prueba sencilla
- 4.3 Manipular el DOM
- 4.4 Configuración avanzada
-
Más allá de AngularJS
- 1. Introducción
- 2. Entorno JavaScript compilado
- 2.1 Funcionamiento de TypeScript
- 2.2 Integración con AngularJS
- 3. Seleccionar el entorno de desarrollo
- 4. Depurar una aplicación AngularJS
- 4.1 Developer Tools
- 4.2 Uso de la consola
- 4.3 Batarang
- 5. Hacer la aplicación disponible sin conexión
- 5.1 Caché HTML 5
- 5.1.1 Alojar en caché los recursos
- 5.1.2 ¿Cómo funciona la caché?
- 5.1.3 Interactuar con la puesta en caché
- 5.2 Almacenamiento HTML 5
- 5.2.1 WebSQL
- 5.2.2 Web Storage
- 5.2.3 IndexedDB
- 5.1 Caché HTML 5
- 6. Creación de aplicaciones nativas
- 6.1 Principio de Cordova
- 6.2 Acceso a las funcionalidades del dispositivo
- 6.3 Integración con una aplicación AngularJS
- índice
Autores
Pierre-Alexandre GURYMás información
Pierre-Alexandre GURY es especialista y desarrollador .NET, muy pendiente de las novedades y últimos avances relacionados con esta tecnología
Sébastien OLLIVIERMás información
Desarrollador web de Full Stack durante varios años, Sébastien OLLIVIER está particularmente interesado en cuestiones de arquitectura y rendimiento. Diariamente, trabaja en temas de interfaz de usuario, arquitectura de nube, rendimiento y DevOps. Es reconocido como el MVP de Microsoft (Most Valuable Professional) en la categoría Developer Technologies y también es el autor dos libros sobre Angular publicados por Ediciones ENI. Puede seguir su actualidad en su cuenta de twitter @SebastienOll et sur son blog https://sebastienollivier.fr/blog.
Características
- Nivel Medio a Experto
- Número de páginas 366 páginas
- Publicación mayo 2016
- Encuadernación rústica - 17 x 21 cm
- ISBN: 978-2-409-00182-6
- EAN: 9782409001826
- Ref. ENI: EITANG
- Nivel Experto a Medio
- Publicación mayo 2016
- HTML
- ISBN: 978-2-409-00183-3
- EAN: 9782409001833
- Ref. ENI: LNEITANG
Descargas
- Descargar los ejemplos del libro (35,6 Ko)