SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Custom directives - AngularJS
Sonneil IT Seminar
Custom directives - AngularJS
Introducción
<div> ~ <super-div>
<div id=”calendar”> ~ <calendar>
$(“#calendar”).calendar();
Custom directives - AngularJS
Directivas predeterminadas
● ng-app
● ng-controller
● ng-include
● ng-bind
● ng-model
● ng-init
● ng-switch.
● ng-show/ng-hide:
● ng-if
● ng-repeat
● ng-click
● ng-checked
Custom directives - AngularJS
Ejercicio 1 (10-15 min.)
En un nuevo fichero HTML, y sólo HTML, combinar diferentes directivas
predeterminadas de angular, (todas englobadas dentro de la directiva ng-app)
para garantizar el siguiente comportamiento actualizado en tiempo real:
● Input de texto cuyo contenido es almacenado en un array. Los elementos
se separarán introduciendo comas entre ellos.
● El contenido del input debe estar inicializado a [“patata”].
● Botón que al ser pulsado muestra el contenido del array por consola.
● Texto de error que se muestra cuando el array está vacío al pulsar el botón.
● Lista no numerada que muestra los elementos del array en el documento.
Custom directives - AngularJS
Nombrar e invocar una directiva
CamelCase
ngDirective ~ ng-directive
ng:directive
ng_directive
data-ng-directive
x-ng-directive
Custom directives - AngularJS
Nombrar e invocar una directiva
● Elemento:
<ng-directive>
● Atributo:
<span ng-directive=”expr”>
● Clase:
<span class=”ng-directive: expr”>
● Comentario:
<!-- directive: ng-directive exp -->
Custom directives - AngularJS
Crear una directiva
var myApp = angular.module(...);
var myDirectives = {};
myApp.directive(myDirectives);
myDirectives.ngDirective = function(){
/* MAGIC */
}
Custom directives - AngularJS
Configurar una directiva
● ‘A’: Como atributo:
<span my-directive></span>
● ‘E’: Como elemento:
<my-directive></my-directive>
● ‘C’: Como clase:
<span class=”my-directive”></span>
● ‘M’: Como comentario:
<!-- directive: my-directive -->
restrict
restrict: ‘AEC’
Custom directives - AngularJS
Configurar una directiva
● template
● templateUrl
● ‘string’
● function(){}
template / templateUrl
templateUrl: function(elem, attrs){
switch(attrs.templateType){
case ‘big’: return ‘src/templates/big.html’; break;
case ‘sml’: return ‘src/templates/small.html’; break;
default: return ‘src/templates/default.html’; break;
}
},
Custom directives - AngularJS
Configurar una directiva
● false
● true
● {...} (Objeto)
○ @
○ =
○ =?
○ &
scope
scope: {
varNameNewScope: ‘@attrNameInElem’,
sameName: ‘@’,
myFunction: ‘&ngClick’,
ngFocus: ‘&’,
myVariable: ‘=?ngModel’
}
Custom directives - AngularJS
Configurar una directiva compile / link
compile: function(elemArr, attrArr, transclude){...}
link: function(scope, elem, attrs, transclude){...}
Custom directives - AngularJS
Ejercicio 2 (10-15 min.)
Crea una directiva que se comporte como un formulario de login de email y
contraseña. Implementa los validadores y los mensajes de error así como el
envío. Configura y diseña la directiva como creas más oportuno para hacerla lo
más reutilizable y potente posible:
Custom directives - AngularJS
Configurar una directiva require
require: ‘^form’,
link: function(scope, elem, attrs, formCtrl){...}
● Sin prefijo
● ?
● ^
● ?^
● ‘string’
● [‘string’, ‘string’]
Custom directives - AngularJS
Ejercicio 3 (20-25 min.)
Crea dos directivas que se relacionen entre sí como padre e hijo. El resultado
debe de ser Un grupo de botones que funcionan como radio. Es decir, sean
activables, pero sólo pueda haber uno activado a la vez.
Tanto el resultado estético como la apariencia de código HTML debe ser similar
a este ejemplo de componente de Bootstrap:
http://getbootstrap.com/components/#btn-groups
Custom directives - AngularJS
Ejercicio 4 (5 min.)
Añade un contador grupal que se incremente cada vez que se haga click en un
botón. Imprime este contador en el grupo de botones.
Custom directives - AngularJS
Ejercicio 5 (10 min.)
Crea un tipo especial de botón que no incremente el contador, si no que lo
disminuya. Además, para identificarlo, este botón debe tener un color de fondo
diferente.
Custom directives - AngularJS
Ejercicio 6 (1 semana)
Descubre dónde sería más potente utilizar una directiva de AngularJS en el
sistema de Sonneil, tanto el Admin como la Web. Impleméntala.

Weitere ähnliche Inhalte

Was ist angesagt?

Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
René Olivo
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp
Angie2331
 
Elementos de JSP
Elementos de JSPElementos de JSP
Elementos de JSP
lauijure
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
kaolong
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)
UTN
 

Was ist angesagt? (20)

Introducciòn a AngularJS
Introducciòn a AngularJSIntroducciòn a AngularJS
Introducciòn a AngularJS
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Introducción a Knockout
Introducción a KnockoutIntroducción a Knockout
Introducción a Knockout
 
AngularJS2
AngularJS2AngularJS2
AngularJS2
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
ASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio SerranoASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio Serrano
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Componentes en angularjs 1.5
Componentes en angularjs 1.5Componentes en angularjs 1.5
Componentes en angularjs 1.5
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJS
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
Curso de Desarrollo Web de Platzi
Curso de Desarrollo Web de PlatziCurso de Desarrollo Web de Platzi
Curso de Desarrollo Web de Platzi
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp
 
Elementos de JSP
Elementos de JSPElementos de JSP
Elementos de JSP
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
 
09b jsf (1)
09b jsf (1)09b jsf (1)
09b jsf (1)
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
Sencha touch - Proceso básico de desarrollo
Sencha touch - Proceso básico de desarrolloSencha touch - Proceso básico de desarrollo
Sencha touch - Proceso básico de desarrollo
 
Curso JSF - Conceptos Basicos
Curso JSF - Conceptos BasicosCurso JSF - Conceptos Basicos
Curso JSF - Conceptos Basicos
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Unidad 3 AJAX
Unidad 3 AJAX Unidad 3 AJAX
Unidad 3 AJAX
 

Ähnlich wie Creación de directivas personalizadas en AngularJS

Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
betabeers
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 

Ähnlich wie Creación de directivas personalizadas en AngularJS (20)

Angular js
Angular jsAngular js
Angular js
 
Angular Fundamentals
Angular FundamentalsAngular Fundamentals
Angular Fundamentals
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2
 
Semana 4 Estructura y componentes SPA
Semana 4  Estructura y componentes SPASemana 4  Estructura y componentes SPA
Semana 4 Estructura y componentes SPA
 
Rails intro
Rails introRails intro
Rails intro
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Angular 6
Angular 6Angular 6
Angular 6
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Drupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommerceDrupal 7 a través Drupal Commerce
Drupal 7 a través Drupal Commerce
 
Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!
 
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzadosCurso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzados
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
Dia2
Dia2Dia2
Dia2
 
Mi app-asp-net-mvc2
Mi app-asp-net-mvc2Mi app-asp-net-mvc2
Mi app-asp-net-mvc2
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 

Creación de directivas personalizadas en AngularJS

  • 1. Custom directives - AngularJS Sonneil IT Seminar
  • 2. Custom directives - AngularJS Introducción <div> ~ <super-div> <div id=”calendar”> ~ <calendar> $(“#calendar”).calendar();
  • 3. Custom directives - AngularJS Directivas predeterminadas ● ng-app ● ng-controller ● ng-include ● ng-bind ● ng-model ● ng-init ● ng-switch. ● ng-show/ng-hide: ● ng-if ● ng-repeat ● ng-click ● ng-checked
  • 4. Custom directives - AngularJS Ejercicio 1 (10-15 min.) En un nuevo fichero HTML, y sólo HTML, combinar diferentes directivas predeterminadas de angular, (todas englobadas dentro de la directiva ng-app) para garantizar el siguiente comportamiento actualizado en tiempo real: ● Input de texto cuyo contenido es almacenado en un array. Los elementos se separarán introduciendo comas entre ellos. ● El contenido del input debe estar inicializado a [“patata”]. ● Botón que al ser pulsado muestra el contenido del array por consola. ● Texto de error que se muestra cuando el array está vacío al pulsar el botón. ● Lista no numerada que muestra los elementos del array en el documento.
  • 5. Custom directives - AngularJS Nombrar e invocar una directiva CamelCase ngDirective ~ ng-directive ng:directive ng_directive data-ng-directive x-ng-directive
  • 6. Custom directives - AngularJS Nombrar e invocar una directiva ● Elemento: <ng-directive> ● Atributo: <span ng-directive=”expr”> ● Clase: <span class=”ng-directive: expr”> ● Comentario: <!-- directive: ng-directive exp -->
  • 7. Custom directives - AngularJS Crear una directiva var myApp = angular.module(...); var myDirectives = {}; myApp.directive(myDirectives); myDirectives.ngDirective = function(){ /* MAGIC */ }
  • 8. Custom directives - AngularJS Configurar una directiva ● ‘A’: Como atributo: <span my-directive></span> ● ‘E’: Como elemento: <my-directive></my-directive> ● ‘C’: Como clase: <span class=”my-directive”></span> ● ‘M’: Como comentario: <!-- directive: my-directive --> restrict restrict: ‘AEC’
  • 9. Custom directives - AngularJS Configurar una directiva ● template ● templateUrl ● ‘string’ ● function(){} template / templateUrl templateUrl: function(elem, attrs){ switch(attrs.templateType){ case ‘big’: return ‘src/templates/big.html’; break; case ‘sml’: return ‘src/templates/small.html’; break; default: return ‘src/templates/default.html’; break; } },
  • 10. Custom directives - AngularJS Configurar una directiva ● false ● true ● {...} (Objeto) ○ @ ○ = ○ =? ○ & scope scope: { varNameNewScope: ‘@attrNameInElem’, sameName: ‘@’, myFunction: ‘&ngClick’, ngFocus: ‘&’, myVariable: ‘=?ngModel’ }
  • 11. Custom directives - AngularJS Configurar una directiva compile / link compile: function(elemArr, attrArr, transclude){...} link: function(scope, elem, attrs, transclude){...}
  • 12. Custom directives - AngularJS Ejercicio 2 (10-15 min.) Crea una directiva que se comporte como un formulario de login de email y contraseña. Implementa los validadores y los mensajes de error así como el envío. Configura y diseña la directiva como creas más oportuno para hacerla lo más reutilizable y potente posible:
  • 13. Custom directives - AngularJS Configurar una directiva require require: ‘^form’, link: function(scope, elem, attrs, formCtrl){...} ● Sin prefijo ● ? ● ^ ● ?^ ● ‘string’ ● [‘string’, ‘string’]
  • 14. Custom directives - AngularJS Ejercicio 3 (20-25 min.) Crea dos directivas que se relacionen entre sí como padre e hijo. El resultado debe de ser Un grupo de botones que funcionan como radio. Es decir, sean activables, pero sólo pueda haber uno activado a la vez. Tanto el resultado estético como la apariencia de código HTML debe ser similar a este ejemplo de componente de Bootstrap: http://getbootstrap.com/components/#btn-groups
  • 15. Custom directives - AngularJS Ejercicio 4 (5 min.) Añade un contador grupal que se incremente cada vez que se haga click en un botón. Imprime este contador en el grupo de botones.
  • 16. Custom directives - AngularJS Ejercicio 5 (10 min.) Crea un tipo especial de botón que no incremente el contador, si no que lo disminuya. Además, para identificarlo, este botón debe tener un color de fondo diferente.
  • 17. Custom directives - AngularJS Ejercicio 6 (1 semana) Descubre dónde sería más potente utilizar una directiva de AngularJS en el sistema de Sonneil, tanto el Admin como la Web. Impleméntala.