SlideShare una empresa de Scribd logo
AngularJS
Formularios
Álvaro Alonso
Contenidos
 Validación de formularios
 Clases CSS para dar formato a formularios
 Actualización de modelos personalizada
 Binding al estado de formularios
2
Validación de datos
 Utilizando two-way data binding
 El modelo de datos asociado a un form no se actualiza hasta que no pasa
la validación de un input
 user.email no se actualiza hasta que el campo tenga una @
 El atributo novalidate desactiva la validación nativa del navegador
3
<input type="email" ng-model="user.email" />
<form novalidate class="simple-form">
…
</form>
Clases CSS
 Angular define clases CSS que ayudan a dar formato a formularios y sus
campos
 ng-valid: el modelo es válido
 ng-invalid: el modelo no es válido
 ng-pristine: aún no se ha interactuado con el campo
 ng-dirty: ya se ha interactuado con el campo
 ng-touched: el campo ha tenido el foco
 ng-untouched: el campo no ha tenido el foco
4
<form novalidate class="css-form">
Name: <input type="text" ng-model="user.name" required /><br />
</form>
.css-form input.ng-invalid.ng-touched {
background-color: #FA787E;
}
.css-form input.ng-valid.ng-touched {
background-color: #78FA89;
}
Actualización del modelo personalizada
 Por defecto cualquier cambio en un input actualiza el modelo
 Pero pueden definirse comportamientos personalizados
 Usando la directiva ngModelOptions
 updateOn: frente a qué evento actualizarlo
 debounce: retrasar la actualización
 Pueden combinarse ambos
5
<input type="text" ng-model=”name" ng-model-options="{ updateOn: 'blur' }" />
<input type="text" ng-model=”name" ng-model-options="{ updateOn: 'blur
mousedown' }" />
<input type="text" ng-model="user.name" ng-model-options="{ debounce: 250 }" />
ng-model-options="{ updateOn: 'default blur', debounce: { default: 500, blur: 0 } }"
Binding al estado de formularios
 Una instancia formulario puede publicarse en el $scope
 Usando en atributo name
 También las instancias de sus campos como una propiedad del formulario
 Esto puede usarse para comprobar su estado
 Y mostrar errores con ng-show
6
<form name="myForm”>
<input name=”myName" type="text" ng-model="name" required/>
</form>
<pre>Form: {{myForm | json}}</pre>
<pre>Input: {{myForm. myName | json}}</pre>
<p>{{ myForm.name.$error.required }}</p>
<p ng-show="myForm.name.$error.required">Nombre requerido!!!!</p>
EJEMPLO
Formularios
7
https://docs.angularjs.org/guide/forms
EJERCICIO
Formularios
8
 Introducir validaciones en los formularios de creación de ficha de paciente
 Por ejemplo añadir campo email
 Asegurarse de que la altura y el peso son valores válidos
 Incluir algún efecto de actualización del modelo personalizada
Documentación
 Forms
 https://docs.angularjs.org/guide/forms
 ngModelOptions
 https://docs.angularjs.org/api/ng/directive/ngModelOptions
9
AngularJS
Formularios
Álvaro Alonso

Más contenido relacionado

PPTX
Curso AngularJS - 1. introducción
PPTX
Curso AngularJS - 2. conceptos básicos
PPTX
Curso AngularJS - 4. filtros y servicios
PPTX
Validación de formularios
PPTX
Introducción a Knockout
PPTX
PPTX
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 1. introducción
Curso AngularJS - 2. conceptos básicos
Curso AngularJS - 4. filtros y servicios
Validación de formularios
Introducción a Knockout
Curso AngularJS - 7. temas avanzados

La actualidad más candente (20)

PDF
Calculadora Gráfica Java implementando el Patrón MVC
PPTX
El patrón MVC
PPTX
Servicios web
PPTX
Modelo vista controlador
ODP
Arquitectura Mvc
PDF
MODELO VISTA CONTROLADOR EN PHP
PPTX
Introduccion a AngularJS
PPT
Patrón MVC
PPTX
JQuery Deferred
PPTX
Curso AngularJS - 3. módulos y controladores
PDF
Modelo, vista, controlador
PDF
JavaFX 2
PPTX
patron-mvc
PPTX
Javascript + Angular Sesion 3
PPTX
Introducción a Backbone
PDF
Angular js
PDF
Taller MVC
PPTX
Curso AngularJS - 5. rutas
PDF
Aprendiendo javascript
PPTX
Modelo vistacontrolador
Calculadora Gráfica Java implementando el Patrón MVC
El patrón MVC
Servicios web
Modelo vista controlador
Arquitectura Mvc
MODELO VISTA CONTROLADOR EN PHP
Introduccion a AngularJS
Patrón MVC
JQuery Deferred
Curso AngularJS - 3. módulos y controladores
Modelo, vista, controlador
JavaFX 2
patron-mvc
Javascript + Angular Sesion 3
Introducción a Backbone
Angular js
Taller MVC
Curso AngularJS - 5. rutas
Aprendiendo javascript
Modelo vistacontrolador
Publicidad

Destacado (6)

PPTX
Forms in AngularJS
PPTX
Directivas en angular js
PDF
Directivas en AngularJS
PDF
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
PDF
Tutorial AngularJS - episódio 5 - diretivas
PPT
Angularjs Lógica de negocio
Forms in AngularJS
Directivas en angular js
Directivas en AngularJS
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Tutorial AngularJS - episódio 5 - diretivas
Angularjs Lógica de negocio
Publicidad

Similar a Curso AngularJS - 6. formularios (13)

PPTX
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
DOC
Formularios Javascript
DOC
Formularios Javascript
PPTX
Introducción a Javascript: Formularios
PPTX
Formularios al limite
PDF
Js api formularios
PDF
Clase 10 formularios
PDF
formularioshtml.pdf
PDF
21.3 Formularios
PDF
Despegar Tech Talk - AngularJS
DOCX
Guía Formulario
DOCX
Formulario
11 . desarrollo de aplicaciones web con angular js y validacion de formularios
Formularios Javascript
Formularios Javascript
Introducción a Javascript: Formularios
Formularios al limite
Js api formularios
Clase 10 formularios
formularioshtml.pdf
21.3 Formularios
Despegar Tech Talk - AngularJS
Guía Formulario
Formulario

Más de Álvaro Alonso González (16)

PPTX
Adding identity management and access control to your app
PPTX
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
PPTX
Lesson 6 - How to register your sensors in account portal
PPTX
Lesson 5 - Installing Keyrock in your own infrastructure
PPTX
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
PPTX
Keyrock - Lesson 1. Introduction
PPTX
Cloud Portal - Lesson 5. Advanced tasks
PPTX
Cloud Portal - Lesson 4. Managing Storage
PPTX
Cloud Portal - Lesson 2. Cloud Portal Overview
PPTX
Cloud Portal - Lesson 1. Introduction
PPTX
Cloud Portal - Lesson 3. Launching an Instance
PPTX
Primeros pasos con Docker
PDF
Introducción al Protocolo OAuth 2.0
PPTX
Adding Identity Management and Access Control to your Application
PPTX
Adding Identity Management and Access Control to your Application - Exersices
PPTX
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Adding identity management and access control to your app
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
Lesson 6 - How to register your sensors in account portal
Lesson 5 - Installing Keyrock in your own infrastructure
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 1. Introduction
Cloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 3. Launching an Instance
Primeros pasos con Docker
Introducción al Protocolo OAuth 2.0
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your Application - Exersices
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal

Último (20)

PPTX
Curso de generación de energía mediante sistemas solares
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
capacitación de aire acondicionado Bgh r 410
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Diapositiva proyecto de vida, materia catedra
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Presentación de Redes de Datos modelo osi
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Curso de generación de energía mediante sistemas solares
Power Point Nicolás Carrasco (disertación Roblox).pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
CyberOps Associate - Cisco Networking Academy
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
SAP Transportation Management para LSP, TM140 Col18
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Presentacion de Alba Curso Auditores Internos ISO 19011
Historia Inteligencia Artificial Ana Romero.pptx
capacitación de aire acondicionado Bgh r 410
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Diapositiva proyecto de vida, materia catedra
TRABAJO DE TECNOLOGIA.pdf...........................
Presentación de Redes de Datos modelo osi
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

Curso AngularJS - 6. formularios

  • 2. Contenidos  Validación de formularios  Clases CSS para dar formato a formularios  Actualización de modelos personalizada  Binding al estado de formularios 2
  • 3. Validación de datos  Utilizando two-way data binding  El modelo de datos asociado a un form no se actualiza hasta que no pasa la validación de un input  user.email no se actualiza hasta que el campo tenga una @  El atributo novalidate desactiva la validación nativa del navegador 3 <input type="email" ng-model="user.email" /> <form novalidate class="simple-form"> … </form>
  • 4. Clases CSS  Angular define clases CSS que ayudan a dar formato a formularios y sus campos  ng-valid: el modelo es válido  ng-invalid: el modelo no es válido  ng-pristine: aún no se ha interactuado con el campo  ng-dirty: ya se ha interactuado con el campo  ng-touched: el campo ha tenido el foco  ng-untouched: el campo no ha tenido el foco 4 <form novalidate class="css-form"> Name: <input type="text" ng-model="user.name" required /><br /> </form> .css-form input.ng-invalid.ng-touched { background-color: #FA787E; } .css-form input.ng-valid.ng-touched { background-color: #78FA89; }
  • 5. Actualización del modelo personalizada  Por defecto cualquier cambio en un input actualiza el modelo  Pero pueden definirse comportamientos personalizados  Usando la directiva ngModelOptions  updateOn: frente a qué evento actualizarlo  debounce: retrasar la actualización  Pueden combinarse ambos 5 <input type="text" ng-model=”name" ng-model-options="{ updateOn: 'blur' }" /> <input type="text" ng-model=”name" ng-model-options="{ updateOn: 'blur mousedown' }" /> <input type="text" ng-model="user.name" ng-model-options="{ debounce: 250 }" /> ng-model-options="{ updateOn: 'default blur', debounce: { default: 500, blur: 0 } }"
  • 6. Binding al estado de formularios  Una instancia formulario puede publicarse en el $scope  Usando en atributo name  También las instancias de sus campos como una propiedad del formulario  Esto puede usarse para comprobar su estado  Y mostrar errores con ng-show 6 <form name="myForm”> <input name=”myName" type="text" ng-model="name" required/> </form> <pre>Form: {{myForm | json}}</pre> <pre>Input: {{myForm. myName | json}}</pre> <p>{{ myForm.name.$error.required }}</p> <p ng-show="myForm.name.$error.required">Nombre requerido!!!!</p>
  • 8. EJERCICIO Formularios 8  Introducir validaciones en los formularios de creación de ficha de paciente  Por ejemplo añadir campo email  Asegurarse de que la altura y el peso son valores válidos  Incluir algún efecto de actualización del modelo personalizada
  • 9. Documentación  Forms  https://docs.angularjs.org/guide/forms  ngModelOptions  https://docs.angularjs.org/api/ng/directive/ngModelOptions 9

Notas del editor

  • #5: $pristine/$dirty tells you whether the user actually changed anything, while $touched/$untouched tells you whether the user has merely been there/visited.