SlideShare una empresa de Scribd logo
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

PPTX
Curso AngularJS - 7. temas avanzados
PPTX
Curso AngularJS - 5. rutas
PPTX
Curso AngularJS - 4. filtros y servicios
PPTX
Curso AngularJS - 2. conceptos básicos
PPTX
Angular Conceptos Practicos 1
PPTX
Advanced angular 1
PPT
Angularjs Lógica de negocio
PDF
Api De Google Calendar
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 5. rutas
Curso AngularJS - 4. filtros y servicios
Curso AngularJS - 2. conceptos básicos
Angular Conceptos Practicos 1
Advanced angular 1
Angularjs Lógica de negocio
Api De Google Calendar

La actualidad más candente (20)

PDF
Javascript y AJAX en Wordpress
KEY
Introducción a Flask
PDF
Directivas en AngularJS
PDF
ASP.NET MVC - Introducción a ASP.NET MVC
PDF
ASP.NET MVC - introduccion al web api
KEY
Introducción a DJango
PDF
Java Web Lección 02 - JSP
PDF
ASP.NET MVC - validacion de datos
PDF
ASP.NET MVC - AJAX
PDF
ASP.NET MVC - areas, manejo de estado
PDF
Aplicación abc. asp net mvc 3
PDF
Cómo domar SonataAdminBundle
PDF
Curso de Struts2: Unidad Didáctica 00 Introduccion
PDF
Workshop 7: Single Page Applications
PDF
cream code with objective-c
PDF
Login social con node.js
PPTX
ASP.Net MVC 3 - Eugenio Serrano
PDF
Java servlets
Javascript y AJAX en Wordpress
Introducción a Flask
Directivas en AngularJS
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - introduccion al web api
Introducción a DJango
Java Web Lección 02 - JSP
ASP.NET MVC - validacion de datos
ASP.NET MVC - AJAX
ASP.NET MVC - areas, manejo de estado
Aplicación abc. asp net mvc 3
Cómo domar SonataAdminBundle
Curso de Struts2: Unidad Didáctica 00 Introduccion
Workshop 7: Single Page Applications
cream code with objective-c
Login social con node.js
ASP.Net MVC 3 - Eugenio Serrano
Java servlets
Publicidad

Destacado (20)

PPT
Iniciando com jQuery
PPTX
Curso AngularJS - 1. introducción
PDF
Tutorial AngularJS - episódio 5 - diretivas
PPTX
Introdução ao AngularJS!
PPTX
JavaScript - Date
PDF
O Poderoso AngularJS
PPTX
AngularJS - 10 passos para aprender a criar suas directivas
PPTX
Aplicando filtros com AngularJS
PDF
Angular js
PPTX
Criando Filtros com AngularJS
PPTX
Scope AngularJS
PPTX
Automação de Testes com AngularJS
PDF
HTTP Interceptors com AngularJS
PDF
AngularJS Abraçando o MVC Client-Side
PPTX
JavaScript - Expressões Regulares
PPTX
Angular js tutorial slides
PPTX
Criando aplicações Single-Page com AngularJS
PPTX
Utilizando diretivas com AngularJS
PPTX
Introdução ao desenvolvimento front end usando bootstrap e angular js
PDF
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
Iniciando com jQuery
Curso AngularJS - 1. introducción
Tutorial AngularJS - episódio 5 - diretivas
Introdução ao AngularJS!
JavaScript - Date
O Poderoso AngularJS
AngularJS - 10 passos para aprender a criar suas directivas
Aplicando filtros com AngularJS
Angular js
Criando Filtros com AngularJS
Scope AngularJS
Automação de Testes com AngularJS
HTTP Interceptors com AngularJS
AngularJS Abraçando o MVC Client-Side
JavaScript - Expressões Regulares
Angular js tutorial slides
Criando aplicações Single-Page com AngularJS
Utilizando diretivas com AngularJS
Introdução ao desenvolvimento front end usando bootstrap e angular js
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
Publicidad

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

PPTX
Introduccion a AngularJS
PDF
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
PDF
Curso Básico de AngularJS
PPTX
Javascript + Angular Sesion 3
PDF
Despegar Tech Talk - AngularJS
PDF
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
PPTX
Introducción a AngularJS
PDF
Introducciòn a AngularJS
PPTX
Advanced angular 2
PPTX
Angular Conceptos Practicos 2
PPTX
PPTX
Introducción a AngularJS
PPTX
10 . desarrollo de aplicaciones web con angular js y formularios
PPTX
AngularJS2
PDF
Introducción a Angular 6
PDF
Conociendo Angular 2
PPTX
Ruby on Rails y AngularJS
PDF
Angular js
PDF
Introducción a AngularJS
PPTX
Presentacion node
Introduccion a AngularJS
Carrera de fondo - La continuada lucha de AngularJS - CodeMotion 2015
Curso Básico de AngularJS
Javascript + Angular Sesion 3
Despegar Tech Talk - AngularJS
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
Introducción a AngularJS
Introducciòn a AngularJS
Advanced angular 2
Angular Conceptos Practicos 2
Introducción a AngularJS
10 . desarrollo de aplicaciones web con angular js y formularios
AngularJS2
Introducción a Angular 6
Conociendo Angular 2
Ruby on Rails y AngularJS
Angular js
Introducción a AngularJS
Presentacion node

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

PPTX
Adding identity management and access control to your app
PPTX
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
PPTX
Curso AngularJS - 6. formularios
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
Curso AngularJS - 6. formularios
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)

PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
Administración se srevidores de apliaciones
PDF
Conceptos básicos de programación tecnología.pdf
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
ACTIVIDAD 2.pdf j
PPTX
Presentación de Redes de Datos modelo osi
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Maste clas de estructura metálica y arquitectura
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPT
Que son las redes de computadores y sus partes
DOCX
Las nuevas tecnologías en la salud - enfermería técnica.
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PDF
Calidad desde el Docente y la mejora continua .pdf
Plantilla para Diseño de Narrativas Transmedia.pdf
Administración se srevidores de apliaciones
Conceptos básicos de programación tecnología.pdf
SAP Transportation Management para LSP, TM140 Col18
ACTIVIDAD 2.pdf j
Presentación de Redes de Datos modelo osi
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Maste clas de estructura metálica y arquitectura
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Que son las redes de computadores y sus partes
Las nuevas tecnologías en la salud - enfermería técnica.
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Zarate Quispe Alex aldayir aplicaciones de internet .docx
historia_web de la creacion de un navegador_presentacion.pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Temas y subtemas de las fichas 1 y 2.pdf
Calidad desde el Docente y la mejora continua .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