SlideShare una empresa de Scribd logo
1 de 22
AngularJS
Módulos y controladores
Álvaro Alonso
Contenidos
 Módulos
 Dependency Injection
 Controladores
2
Módulos
 Contenedores para diferentes partes de una aplicación
 Controladores, servicios, filtros, etc
 Especifican de manera declarativa cómo debe arrancar la aplicación
 Son reutilizables
 Pueden cargarse en cualquier orden
 Incluso de forma paralela
3
Módulos
4
 Declarar un módulo
 Definir controladores, servicios, filtros…
var myApp = angular.module(‘”myModule”, [“dependency1”,
“dependency2”,…])
myApp.controller(“myController", function () {
…
})
.factory(“myFactory", function () {
…
})
.filter(“myFilter", function () {
…
});
Módulos Inicialización automática
5
 Aplicación Angular sin módulo principal
 Aplicación Angular con módulo principal
<body ng-app>
…
</body>
<body ng-app=“myApp”>
…
</body>
Módulos
 Configuration blocks
 Se ejecutan durante la fase de registro y configuración
 Run blocks
 Se ejecutan después de que se cree el Injector
 Una especie de método main()
Config & Run
6
angular.module('myModule', []).
config(function(injectables) {
…
}).
run(function(injectables) {
…
});
Módulos
 Un módulo por funcionalidad
 Un módulo por cada componente reutilizable
 Directivas y filtros
 Un módulo a nivel de aplicación
 Depende del resto
 Contiene código de inicialización
Recomendaciones de uso
7
Dependency Injection
 Patrón de diseño de software que se ocupa de gestionar las
dependencias de los componentes
 Crea los componentes
 Resuelve sus dependencias
 Provee dependencias a otros componentes
 Favorece el concepto de diseño modular de Angular
8
Dependency Injection
 En servicios, directivas o filtros
9
angular.module('myModule', [])
.factory('serviceId', ['depService', function(depService) {
...
}])
.directive('directiveName', ['depService', function(depService) {
...
}])
.filter('filterName', ['depService', function(depService) {
...
}]);
Dependency Injection
 En módulos
10
angular.module('myModule', [])
.config(['depProvider', function(depProvider) {
...
}])
.run(['depService', function(depService) {
...
}]);
Dependency Injection
 En controladores
 Los controladores tienen acceso a la dependencia $scope
11
angular.module.('myModule', [])
.controller('MyController', ['$scope', 'dep1', 'dep2', function($scope, dep1, dep2) {
...
$scope.aMethod = function() {
...
}
...
}]);
Controladores
 Se utilizan para añadir funcionalidad al Angular Scope
 “Pegamento” entre el control y la vista
 Al instanciar un controlador se crea un nuevo objeto $scope
 Se hace mediante la directiva ng-controller
 Establece el estado inicial del $scope
 Añade funciones al $scope
 La directiva controller as controller1
 asigna la instancia a la variable controller1 del $scope
 Veremos temas avanzados sobre el $scope más adelante
12
Controladores
 Definir un controlador en una aplicación
 Instanciar un controlador
Definición
13
angular.module("myApp", [])
.controller(”myController", [“$scope”, function ($scope) {
…
});
<div ng-app=”myApp" ng-controller=”myController">
…
</div>
Controladores
 Definir variables
 Acceder a las variables
Variables
14
angular.module(’myApp', [])
.controller(‘myController’, [“$scope”, function ($scope) {
$scope.var1 = 3;
$scope.var2 = [‘s’, ’m', ‘l'];
});
<div ng-app=”myApp" ng-controller=”myController”>
<input ng-model=”var1”>
<span ng-repeat=“size in var2">
{{ size }}
</span>
</div>
Controladores
 Definir una función
 Llamar a la función
Funciones
15
angular.module(“myApp”, [])
.controller(“myController”, [“$scope”, function ($scope) {
$scope.fun1 = function () {
…
};
});
<div ng-app=”myApp" ng-controller=”myController">
<span>{{ fun1() }} </span>
<button class="btn" ng-click=“fun1()">Pay</button>
</div>
Controladores
 Acceder a variables globales (window, document, location)
 Las expresiones no tienen acceso directo a estas variables
16
angular.module('expressionExample', [])
.controller('ExampleController', ['$window', '$scope', function($window, $scope) {
$scope.name = 'World';
$scope.greet = function() {
$window.alert('Hello ' + $scope.name);
};
}]);
<div class="example2" ng-controller="ExampleController">
Name: <input ng-model="name" type="text"/>
<button ng-click="greet()">Greet</button>
<button ng-click="window.alert('Should not see me')">Won't greet</button>
</div>
Controladores
 Definir variables/funciones
 Instanciar controlador
controller as
17
angular.module(’myApp', [])
.controller(‘myController’, function () {
this.var1 = 3;
this.fun1 = function () { … };
});
<div ng-app=”myApp" ng-controller=”myController as controller">
<input ng-model=”controller.var1”>
<span>{{controller.fun1() }} </span>
</div>
Controladores
18
EJEMPLO
Controladores
19
EJERCICIO
Controladores
20
 En nuestra aplicación vamos a crear un controlador de paciente
 Hay que crear un fichero con el módulo principal de la app
 Este módulo tendrá el controlador de paciente
 Un paciente tendrá las variables
 Personales: nombre, sexo, edad, …
 Estado clínico: peso, altura, IMC, ...
 Y funciones
 checkIMC: que hace una interpretación del IMC
 printInform: pinta en un alert un informe con la informacióm más relevante
del paciente
Documentación
 Módulos
 https://docs.angularjs.org/guide/module
 Dependency Ingection
 https://docs.angularjs.org/guide/di
 Controladores
 https://docs.angularjs.org/guide/controller
21
AngularJS
Módulos y controladores
Álvaro Alonso

Más contenido relacionado

La actualidad más candente

ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCDanae Aguilar Guzmán
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiDanae Aguilar Guzmán
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoDanae Aguilar Guzmán
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionDavid Vaquero
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsVisual Engineering
 
cream code with objective-c
cream code with objective-ccream code with objective-c
cream code with objective-cidealistaimasd
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.jsCarlos Azaustre
 
ASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio SerranoASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio SerranoEugenio Serrano
 

La actualidad más candente (20)

Javascript y AJAX en Wordpress
Javascript y AJAX en WordpressJavascript y AJAX en Wordpress
Javascript y AJAX en Wordpress
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
Directivas en AngularJS
Directivas en AngularJSDirectivas en AngularJS
Directivas en AngularJS
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 
ASP.NET MVC - AJAX
ASP.NET MVC - AJAXASP.NET MVC - AJAX
ASP.NET MVC - AJAX
 
ASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estadoASP.NET MVC - areas, manejo de estado
ASP.NET MVC - areas, manejo de estado
 
Introjsp
IntrojspIntrojsp
Introjsp
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Curso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 IntroduccionCurso de Struts2: Unidad Didáctica 00 Introduccion
Curso de Struts2: Unidad Didáctica 00 Introduccion
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
cream code with objective-c
cream code with objective-ccream code with objective-c
cream code with objective-c
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Crear modulos
Crear modulosCrear modulos
Crear modulos
 
ASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio SerranoASP.Net MVC 3 - Eugenio Serrano
ASP.Net MVC 3 - Eugenio Serrano
 
Java servlets
Java servletsJava servlets
Java servlets
 

Destacado

Iniciando com jQuery
Iniciando com jQueryIniciando com jQuery
Iniciando com jQueryTiago Butzke
 
Tutorial AngularJS - episódio 5 - diretivas
Tutorial AngularJS - episódio 5 -  diretivasTutorial AngularJS - episódio 5 -  diretivas
Tutorial AngularJS - episódio 5 - diretivasJose Naves Moura Neto
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJSBeto Muniz
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasJanderson Fernandes Cardoso
 
Aplicando filtros com AngularJS
Aplicando filtros com AngularJSAplicando filtros com AngularJS
Aplicando filtros com AngularJSRodrigo Branas
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJSRodrigo Branas
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJSRodrigo Branas
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSRodrigo Branas
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideSergio Azevedo
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões RegularesRodrigo Branas
 
Angular js tutorial slides
Angular js tutorial slidesAngular js tutorial slides
Angular js tutorial slidessamhelman
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSRodrigo Branas
 
Utilizando diretivas com AngularJS
Utilizando diretivas com AngularJSUtilizando diretivas com AngularJS
Utilizando diretivas com AngularJSRodrigo Branas
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 

Destacado (20)

Iniciando com jQuery
Iniciando com jQueryIniciando com jQuery
Iniciando com jQuery
 
Curso AngularJS - 1. introducción
Curso AngularJS - 1. introducciónCurso AngularJS - 1. introducción
Curso AngularJS - 1. introducción
 
Tutorial AngularJS - episódio 5 - diretivas
Tutorial AngularJS - episódio 5 -  diretivasTutorial AngularJS - episódio 5 -  diretivas
Tutorial AngularJS - episódio 5 - diretivas
 
Introdução ao AngularJS!
Introdução ao AngularJS!Introdução ao AngularJS!
Introdução ao AngularJS!
 
JavaScript - Date
JavaScript - DateJavaScript - Date
JavaScript - Date
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJS
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivas
 
Aplicando filtros com AngularJS
Aplicando filtros com AngularJSAplicando filtros com AngularJS
Aplicando filtros com AngularJS
 
Angular js
Angular jsAngular js
Angular js
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJS
 
Scope AngularJS
Scope AngularJSScope AngularJS
Scope AngularJS
 
Automação de Testes com AngularJS
Automação de Testes com AngularJSAutomação de Testes com AngularJS
Automação de Testes com AngularJS
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJS
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-Side
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Angular js tutorial slides
Angular js tutorial slidesAngular js tutorial slides
Angular js tutorial slides
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
 
Utilizando diretivas com AngularJS
Utilizando diretivas com AngularJSUtilizando diretivas com AngularJS
Utilizando diretivas com AngularJS
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 

Similar a Curso AngularJS - 3. módulos y controladores

Similar a Curso AngularJS - 3. módulos y controladores (20)

Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Semana 4 Estructura y componentes SPA
Semana 4  Estructura y componentes SPASemana 4  Estructura y componentes SPA
Semana 4 Estructura y componentes SPA
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJS
 
Aladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez CastroAladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez Castro
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Rails intro
Rails introRails intro
Rails intro
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
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
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Hands on Spring 2.5
Hands on Spring 2.5Hands on Spring 2.5
Hands on Spring 2.5
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
UDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextualUDA-Componentes RUP. Menú contextual
UDA-Componentes RUP. Menú contextual
 
Mvc
MvcMvc
Mvc
 

Más de Álvaro Alonso González

Adding identity management and access control to your app
Adding identity management and access control to your appAdding identity management and access control to your app
Adding identity management and access control to your appÁlvaro Alonso González
 
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREÁlvaro Alonso González
 
Lesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalLesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalÁlvaro Alonso González
 
Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Álvaro Alonso González
 
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Álvaro Alonso González
 
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewCloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewÁlvaro Alonso González
 
Cloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceCloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceÁlvaro Alonso González
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationÁlvaro Alonso González
 
Adding Identity Management and Access Control to your Application - Exersices
Adding Identity Management and Access Control to your Application - ExersicesAdding Identity Management and Access Control to your Application - Exersices
Adding Identity Management and Access Control to your Application - ExersicesÁlvaro Alonso González
 
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalSetting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalÁlvaro Alonso González
 

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

Adding identity management and access control to your app
Adding identity management and access control to your appAdding identity management and access control to your app
Adding identity management and access control to your app
 
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
 
Curso AngularJS - 6. formularios
Curso AngularJS - 6. formulariosCurso AngularJS - 6. formularios
Curso AngularJS - 6. formularios
 
Lesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portalLesson 6 - How to register your sensors in account portal
Lesson 6 - How to register your sensors in account portal
 
Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure Lesson 5 - Installing Keyrock in your own infrastructure
Lesson 5 - Installing Keyrock in your own infrastructure
 
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
Keyrock - Lesson 3. Applications. How to create OAuth2 tokens.
 
Keyrock - Lesson 1. Introduction
Keyrock - Lesson 1. IntroductionKeyrock - Lesson 1. Introduction
Keyrock - Lesson 1. Introduction
 
Cloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasksCloud Portal - Lesson 5. Advanced tasks
Cloud Portal - Lesson 5. Advanced tasks
 
Cloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing StorageCloud Portal - Lesson 4. Managing Storage
Cloud Portal - Lesson 4. Managing Storage
 
Cloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal OverviewCloud Portal - Lesson 2. Cloud Portal Overview
Cloud Portal - Lesson 2. Cloud Portal Overview
 
Cloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. IntroductionCloud Portal - Lesson 1. Introduction
Cloud Portal - Lesson 1. Introduction
 
Cloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an InstanceCloud Portal - Lesson 3. Launching an Instance
Cloud Portal - Lesson 3. Launching an Instance
 
Primeros pasos con Docker
Primeros pasos con DockerPrimeros pasos con Docker
Primeros pasos con Docker
 
Introducción al Protocolo OAuth 2.0
Introducción al Protocolo OAuth 2.0Introducción al Protocolo OAuth 2.0
Introducción al Protocolo OAuth 2.0
 
Adding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your ApplicationAdding Identity Management and Access Control to your Application
Adding Identity Management and Access Control to your Application
 
Adding Identity Management and Access Control to your Application - Exersices
Adding Identity Management and Access Control to your Application - ExersicesAdding Identity Management and Access Control to your Application - Exersices
Adding Identity Management and Access Control to your Application - Exersices
 
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud PortalSetting Up your Cloud Environment using the FIWARE Lab Cloud Portal
Setting Up your Cloud Environment using the FIWARE Lab Cloud Portal
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Curso AngularJS - 3. módulos y controladores

  • 2. Contenidos  Módulos  Dependency Injection  Controladores 2
  • 3. Módulos  Contenedores para diferentes partes de una aplicación  Controladores, servicios, filtros, etc  Especifican de manera declarativa cómo debe arrancar la aplicación  Son reutilizables  Pueden cargarse en cualquier orden  Incluso de forma paralela 3
  • 4. Módulos 4  Declarar un módulo  Definir controladores, servicios, filtros… var myApp = angular.module(‘”myModule”, [“dependency1”, “dependency2”,…]) myApp.controller(“myController", function () { … }) .factory(“myFactory", function () { … }) .filter(“myFilter", function () { … });
  • 5. Módulos Inicialización automática 5  Aplicación Angular sin módulo principal  Aplicación Angular con módulo principal <body ng-app> … </body> <body ng-app=“myApp”> … </body>
  • 6. Módulos  Configuration blocks  Se ejecutan durante la fase de registro y configuración  Run blocks  Se ejecutan después de que se cree el Injector  Una especie de método main() Config & Run 6 angular.module('myModule', []). config(function(injectables) { … }). run(function(injectables) { … });
  • 7. Módulos  Un módulo por funcionalidad  Un módulo por cada componente reutilizable  Directivas y filtros  Un módulo a nivel de aplicación  Depende del resto  Contiene código de inicialización Recomendaciones de uso 7
  • 8. Dependency Injection  Patrón de diseño de software que se ocupa de gestionar las dependencias de los componentes  Crea los componentes  Resuelve sus dependencias  Provee dependencias a otros componentes  Favorece el concepto de diseño modular de Angular 8
  • 9. Dependency Injection  En servicios, directivas o filtros 9 angular.module('myModule', []) .factory('serviceId', ['depService', function(depService) { ... }]) .directive('directiveName', ['depService', function(depService) { ... }]) .filter('filterName', ['depService', function(depService) { ... }]);
  • 10. Dependency Injection  En módulos 10 angular.module('myModule', []) .config(['depProvider', function(depProvider) { ... }]) .run(['depService', function(depService) { ... }]);
  • 11. Dependency Injection  En controladores  Los controladores tienen acceso a la dependencia $scope 11 angular.module.('myModule', []) .controller('MyController', ['$scope', 'dep1', 'dep2', function($scope, dep1, dep2) { ... $scope.aMethod = function() { ... } ... }]);
  • 12. Controladores  Se utilizan para añadir funcionalidad al Angular Scope  “Pegamento” entre el control y la vista  Al instanciar un controlador se crea un nuevo objeto $scope  Se hace mediante la directiva ng-controller  Establece el estado inicial del $scope  Añade funciones al $scope  La directiva controller as controller1  asigna la instancia a la variable controller1 del $scope  Veremos temas avanzados sobre el $scope más adelante 12
  • 13. Controladores  Definir un controlador en una aplicación  Instanciar un controlador Definición 13 angular.module("myApp", []) .controller(”myController", [“$scope”, function ($scope) { … }); <div ng-app=”myApp" ng-controller=”myController"> … </div>
  • 14. Controladores  Definir variables  Acceder a las variables Variables 14 angular.module(’myApp', []) .controller(‘myController’, [“$scope”, function ($scope) { $scope.var1 = 3; $scope.var2 = [‘s’, ’m', ‘l']; }); <div ng-app=”myApp" ng-controller=”myController”> <input ng-model=”var1”> <span ng-repeat=“size in var2"> {{ size }} </span> </div>
  • 15. Controladores  Definir una función  Llamar a la función Funciones 15 angular.module(“myApp”, []) .controller(“myController”, [“$scope”, function ($scope) { $scope.fun1 = function () { … }; }); <div ng-app=”myApp" ng-controller=”myController"> <span>{{ fun1() }} </span> <button class="btn" ng-click=“fun1()">Pay</button> </div>
  • 16. Controladores  Acceder a variables globales (window, document, location)  Las expresiones no tienen acceso directo a estas variables 16 angular.module('expressionExample', []) .controller('ExampleController', ['$window', '$scope', function($window, $scope) { $scope.name = 'World'; $scope.greet = function() { $window.alert('Hello ' + $scope.name); }; }]); <div class="example2" ng-controller="ExampleController"> Name: <input ng-model="name" type="text"/> <button ng-click="greet()">Greet</button> <button ng-click="window.alert('Should not see me')">Won't greet</button> </div>
  • 17. Controladores  Definir variables/funciones  Instanciar controlador controller as 17 angular.module(’myApp', []) .controller(‘myController’, function () { this.var1 = 3; this.fun1 = function () { … }; }); <div ng-app=”myApp" ng-controller=”myController as controller"> <input ng-model=”controller.var1”> <span>{{controller.fun1() }} </span> </div>
  • 20. EJERCICIO Controladores 20  En nuestra aplicación vamos a crear un controlador de paciente  Hay que crear un fichero con el módulo principal de la app  Este módulo tendrá el controlador de paciente  Un paciente tendrá las variables  Personales: nombre, sexo, edad, …  Estado clínico: peso, altura, IMC, ...  Y funciones  checkIMC: que hace una interpretación del IMC  printInform: pinta en un alert un informe con la informacióm más relevante del paciente
  • 21. Documentación  Módulos  https://docs.angularjs.org/guide/module  Dependency Ingection  https://docs.angularjs.org/guide/di  Controladores  https://docs.angularjs.org/guide/controller 21