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
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>
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