unidades:02_angular:08_modulos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| unidades:02_angular:08_modulos [2014/07/23 18:46] – [Referencias] admin | unidades:02_angular:08_modulos [2014/10/28 18:35] (actual) – [Varios módulos] admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== 2.8 Modulos ====== | ====== 2.8 Modulos ====== | ||
| - | Por ahora hemos visto unas cuantas directivas de angular ((pero | + | Por ahora hemos visto unas cuantas directivas de angular ((pero |
| En todos los ejemplo que hemos visto ya hemos hecho uso de los módulos en AngularJS con la siguiente línea: | En todos los ejemplo que hemos visto ya hemos hecho uso de los módulos en AngularJS con la siguiente línea: | ||
| Línea 8: | Línea 8: | ||
| </ | </ | ||
| - | Pero, ¿que es un módulo? Podríamos verlo como un paquete de Java. Es como una forma de agrupar funcionalidades de Angular. Por ejemplo podríamos crear varias directivas relacionadas con google Maps. Lo normal sería agrupar todas esas directivas en un único módulo y luego al crear nuestra aplicación decir que vamos a usar dicho módulo. | + | Pero, ¿qué |
| Sigamos viendo lo que es un módulo mediante los métodos de JavaScript que ofrece AngularJS. | Sigamos viendo lo que es un módulo mediante los métodos de JavaScript que ofrece AngularJS. | ||
| - | ===== Crear un módulo | + | ===== Usando módulos ===== |
| + | Veamos ahora distintas operaciones sobre los módulos. | ||
| + | |||
| + | ==== Crear un módulo ==== | ||
| Podemos crear un módulo llamado " | Podemos crear un módulo llamado " | ||
| <sxh js> | <sxh js> | ||
| Línea 18: | Línea 21: | ||
| </ | </ | ||
| - | Al ejecutarlo se crea el módulo " | + | Al ejecutarlo se crea el módulo " |
| - | ¿Porque | + | ¿Por qué debemos incluir los corchetes? Desgraciadamente no existe un método para obtener una referencia a un módulo y otro distinto para crear . En ambos casos se usa el método '' |
| <note warning> | <note warning> | ||
| Línea 29: | Línea 32: | ||
| </ | </ | ||
| - | ===== Obtener un módulo | + | ==== Obtener un módulo ==== |
| Para obtener una referencia a un módulo ya creado usaremos la siguiente línea: | Para obtener una referencia a un módulo ya creado usaremos la siguiente línea: | ||
| <sxh js> | <sxh js> | ||
| Línea 35: | Línea 38: | ||
| </ | </ | ||
| - | Ahora en la variable de JavaScript '' | + | Ahora en la variable de JavaScript '' |
| - | ===== Crear y obtener un módulo | + | ==== Crear y obtener un módulo ==== |
| - | Lo normal no es crear un módulo y luego obtener una referencia a él sino que hacerlo todo en la misma línea: | + | Lo normal no es crear un módulo y luego obtener una referencia a él sino hacerlo todo en la misma línea: |
| <sxh js> | <sxh js> | ||
| var moduloAA=angular.module(" | var moduloAA=angular.module(" | ||
| Línea 46: | Línea 49: | ||
| ¿Se entiende ahora la primera línea de todos los ejemplos de AngularJS? | ¿Se entiende ahora la primera línea de todos los ejemplos de AngularJS? | ||
| - | ===== Controladores | + | |
| + | ===== Artefactos | ||
| + | En los módulos se pueden definir diversos artefactos ((he usado esa palabra aunque no exista en la documentación de AngularJS)) que permitirán configurar nuestra aplicación. | ||
| + | |||
| + | Un artefacto es por ejemplo una directiva o un controlador , teniendo que definir estos artefactos en módulos de AngularJS. | ||
| + | |||
| + | ==== Controladores | ||
| Por ahora hemos visto que crear un controlador es simplemente crear una función JavaScript con el nombre de dicho controlador. Esta no es una forma adecuada de crear un controlador, | Por ahora hemos visto que crear un controlador es simplemente crear una función JavaScript con el nombre de dicho controlador. Esta no es una forma adecuada de crear un controlador, | ||
| Línea 60: | Línea 69: | ||
| * Línea 3: Creamos un controlador llamado " | * Línea 3: Creamos un controlador llamado " | ||
| - | El método '' | + | El método '' |
| <note warning> | <note warning> | ||
| Todos los controladores que usemos en nuestra aplicación deben siempre definirse dentro de un módulo y no como funciones sueltas. | Todos los controladores que usemos en nuestra aplicación deben siempre definirse dentro de un módulo y no como funciones sueltas. | ||
| - | Esto es importante ya que a partir de la versión **1.3** de AngularJS no funcionaran | + | É es importante ya que a partir de la versión **1.3** de AngularJS no funcionarán |
| </ | </ | ||
| - | ===== Directivas | + | ==== Directivas ==== |
| Hemos visto algunas directivas en AngularJS pero nosotros podemos crear nuestras propias directivas, para ello deberemos usar el método '' | Hemos visto algunas directivas en AngularJS pero nosotros podemos crear nuestras propias directivas, para ello deberemos usar el método '' | ||
| Línea 76: | Línea 85: | ||
| </ | </ | ||
| - | Ya veremos | + | Ya veremos |
| - | ===== Otros artefactos | + | ==== Otros artefactos ==== |
| - | Hasta ahora hemos visto que AngularJS dispone de 2 artefactos | + | Hasta ahora hemos visto que AngularJS dispone de 2 artefactos : |
| * Controladores | * Controladores | ||
| * Directivas | * Directivas | ||
| Línea 92: | Línea 101: | ||
| * Etc. | * Etc. | ||
| - | Es decir y para acabar con la explicación de que es un módulo: | + | Es decir y para acabar con la explicación de qué es un módulo: |
| //Un módulo es donde se añaden los distintos artefactos que usaremos en nuestra aplicación.// | //Un módulo es donde se añaden los distintos artefactos que usaremos en nuestra aplicación.// | ||
| Línea 103: | Línea 112: | ||
| En cualquier aplicación que desarrollemos acabaremos organizando nuestro código en distintos módulos o usando [[http:// | En cualquier aplicación que desarrollemos acabaremos organizando nuestro código en distintos módulos o usando [[http:// | ||
| - | ¿como | + | ¿Cómo |
| Veamos un ejemplo: | Veamos un ejemplo: | ||
| Línea 118: | Línea 127: | ||
| * Línea 4: Se crea el módulo " | * Línea 4: Se crea el módulo " | ||
| - | ¿que implicaciones tiene que el módulo " | + | ¿Qué |
| - | AngularJS por defecto | + | AngularJS por defecto |
| ==== Transitividad ==== | ==== Transitividad ==== | ||
| Línea 137: | Línea 146: | ||
| * Línea 3: El módulo " | * Línea 3: El módulo " | ||
| - | Ahora el módulo " | + | Ahora el módulo " |
| - | ===== Carga de módulos | + | ==== Carga de módulos ==== |
| Llegados a este punto , parece que los módulos son una cosa muy útil para organizar nuestro código JavaScript y con las relaciones transitivas nos podemos ahorrar mucho trabajo. | Llegados a este punto , parece que los módulos son una cosa muy útil para organizar nuestro código JavaScript y con las relaciones transitivas nos podemos ahorrar mucho trabajo. | ||
| - | Pero hay un asunto en el que no habrás caído | + | Pero hay un asunto en el que no habrás caído: para que funcione |
| AngularJS no va a ahorrarte cosas como lo siguiente: | AngularJS no va a ahorrarte cosas como lo siguiente: | ||
| <sxh html> | <sxh html> | ||
| - | <script type=' | + | <script type=' |
| - | <script type=' | + | <script type=' |
| - | <script type=' | + | <script type=' |
| - | <script type=' | + | <script type=' |
| </ | </ | ||
| - | Es decir , suponiendo que cada módulo y todos sus artefactos están en un único fichero , deberemos cargar los 4 ficheros | + | Es decir , suponiendo que cada módulo y todos sus artefactos están en un único fichero , deberemos cargar los 4 ficheros |
| - | Entonces | + | Sin embargo |
| + | * [[http:// | ||
| + | * [[https:// | ||
| - | Si están haciendo | + | Aunque hay que tomarlos con cautela ya que aún no hay una solución definitiva |
| - | Este es el primer motivo para crear nuevos | + | <note warning> |
| + | Recuerda que siempre debes cargar | ||
| + | </ | ||
| - | ===== Referencias ===== | + | ==== Varios módulos |
| - | * [[https:// | + | Entonces , ¿para qué sirve tener más de un módulo? Si estás haciendo una librería JavaScript con artefactos de Angular , como por ejemplo directivas para usar Google Maps en AngularJS |
| - | * [[https:// | + | |
| - | * [[http:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| + | <note tip> | ||
| + | La mayor utilidad de los módulos es si está haciendo una librería que será usada por terceros. | ||
| + | </ | ||
| + | ===== Espacio de nombres ===== | ||
| + | Una última característica de los módulos es el espacio de nombres. Hemos visto que al añadir un controlador a un módulo le indicamos su nombre, pues bien. Para AngularJS da igual el módulo en el que definamos el controlador, | ||
| + | Ésto tiene la ventaja de que no debemos preocuparnos por saber en qué módulo se definió el controlador (o cualquier otro artefacto) pero la parte negativa es que no podremos tener 2 controladores con el mismo nombre aunque estén en distintos módulos. Por lo tanto en un equipo grande de desarrollo se deberán coordinar los nombres de todos los artefactos de AngularJS. | ||
| + | |||
| + | <note tip> | ||
| + | Mi opinión personal y mi recomendación es que en unos años acabaremos teniendo nombres de módulos y artefactos como las FQCN ((Fully-Qualified Class Name. Es decir el nombre completo de una clase Java incluyendo el paquete al que pertenece.)) de Java. | ||
| + | |||
| + | Es decir que el nombre de un controlador (( Lo mismo para otros artefactos )) acabará siendo: " | ||
| + | |||
| + | Y lo mismo con el nombre de los módulos que se llamarán " | ||
| + | </ | ||
| + | |||
| + | ===== Ejemplo ===== | ||
| + | Seguimos ahora con nuestro ejemplo y vamos a definir nuestro controlador en el módulo de nuestra aplicación. | ||
| + | |||
| + | <sxh html; | ||
| + | < | ||
| + | <html ng-app=" | ||
| + | < | ||
| + | <script src="// | ||
| + | <script src=" | ||
| + | </ | ||
| + | <body ng-controller=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label ng-show=" | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | <label for=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | El fichero '' | ||
| + | |||
| + | <sxh js; | ||
| + | var app=angular.module(" | ||
| + | |||
| + | app.controller(" | ||
| + | $scope.seguro={ | ||
| + | nif:"", | ||
| + | nombre:"", | ||
| + | ape1:"", | ||
| + | edad: | ||
| + | sexo:"", | ||
| + | casado: | ||
| + | numHijos: | ||
| + | embarazada: | ||
| + | coberturas: { | ||
| + | oftalmologia: | ||
| + | dental: | ||
| + | fecundacionInVitro: | ||
| + | }, | ||
| + | enfermedades: | ||
| + | corazon: | ||
| + | estomacal: | ||
| + | rinyones: | ||
| + | alergia: | ||
| + | nombreAlergia:"" | ||
| + | }, | ||
| + | fechaCreacion: | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | * Línea 3: Vemos cómo el controlador ya no es una función con nombre sino que ahora es una función anónima que se pasa al método '' | ||
| + | |||
| + | |||
| + | {{url> | ||
| + | ===== Referencias ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
unidades/02_angular/08_modulos.1406133995.txt.gz · Última modificación: por admin
