Tabla de Contenidos

2.1 Primera aplicación

Ahora vamos a poner en marcha la primera aplicación en Angular. Para ver que funciona lo que haremos simplemente es darle valor a una variable en JavaScript y mostrar dicho valor en la página HTML. Verás que hay algunas cosas que poner inicialmente pero al ser la primera aplicación no quedarán totalmente claras ahora mismo. No te preocupes, es la primera aplicación y a lo largo del curso quedarán totalmente claras ya que dedicaremos temas completos a cada parte.

El ejemplo consta de dos ficheros:

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-controller="PruebaController">
    <h1>{{mensaje}}</h1>
  </body>

</html>

var app=angular.module("app",[]);
 
function PruebaController($scope) {
  $scope.mensaje="Hola Mundo";
}

En todas las aplicaciones que he hecho siempre he llamado al módulo principal “app”, nunca le llamo realmente “tienda” o “banco” o lo que sea. El por qué de ello es que creo que realmente no aporta nada poner un nombre descriptivo y tener siempre en toda la aplicación disponible una variable llamada app con el módulo principal de la aplicación me resulta muy útil.

Recuerda que al crear el módulo hay que añadir un segundo parámetro con un array vacio:
var app=angular.module("app",[]);

Si no lo haces así angular dará un error diciendo que no existe el módulo “app”.En el tema de módulos explicaremos por qué es necesario el array.

$scope

Pasemos ahora a explicar con un poco más de detalle qué es el $scope ya que es de las cosas más importantes de Angular.

El $scope es LA VARIABLE de Angular donde debemos guardar toda la información de JavaScript de nuestra página. Ya no vamos a crear nuevas variable de la forma:

var i=5;

sino que ahora deberemos hacer siempre:

$scope.i=5;

¿Por qué hacer ésto? Porque angular sólo muestra la información en el HTML mediante {{ }} de aquellas propiedades del $scope y no de cualquier variable de JavaScript.

Podemos seguir creando variable con var pero no las podremos mostrar en el HTML si no están en el $scope 2).

Ahora podríamos preguntarnos el porqué de esa limitación de obligarnos a usar el $scope. El motivo es porque angular hace magia con el $scope. Lo impresionante es que si posteriormente hacemos alguna modificación en el $scope, angular la detectará y volverá a modificar el HTML automáticamente 3).Así que angular está monitorizando el $scope para ver si cambia algo y de esa forma actualizar el HTML. Pero lo que no podría es monitorizar todas las variables de JavaScript , así que si queremos que se enlacen el mundo de javaScript y el de HTML deremos usar el $scope.

Si no acabas de entender el $scope, no te preocupes, seguiremos hablando de él a lo largo de curso. En mi opinión es de las cosas que más cuestan de ver, aunque no sea de las mas difíciles.

databinding

El Data-binding es el concepto mas importante de angular y lo que hace es relacionar el HTML con nuestro modelo de datos. Es lo que acabamos de ver de poner las {{ }} en el HTML y que se transforme con los datos del JavaScript

La generación del HTML se produce una única vez 4) al generar la página

¿Qué hace Angular? Une la información del modelo y de la plantilla para generar el HTML que ve finalmente el usuario. Este concepto es similar a cualquier modelo de plantillas como pueda ser JSP o ASP. Lo importante por ahora es que este enlace se hace una sola vez 5) al cargar la página.

En los siguientes temas seguiremos viendo más características del Data-binding de AngularJS

Ejemplo

Resumen

Referencias

1) Ya veremos más adelante qué es un módulo, por ahora solo piensa que es como un paquete en Java
2) Realmente podríamos mostrarlas si modificamos directamente el DOM pero entonces perdemos la gracia de usar Angular
3) En el siguiente tema vamos a ver un ejemplo de ésto
4) , 5) Realmente se hace muchas veces pero vayamos poco a poco para entender Angular