Una tecnología nueva en la capa de cliente que nos permite realizar cosas chachis en nuestras páginas sin necesidad de montar jaleos de código. Separa muy bien la responsabilidad de cada tecnología en su ámbito: CSS, HTML y Javascript, y las comunica cuando lo considera necesario.
Característica principal. No manosees el árbol DOM para acceder al valor de un elemento.
// Esto noooooo por favoooor!
var titulo = $("#elem").up("li").first("p").down("span.olala").val();
// Esto se ve mejor :)
var titulo = $scope.titulo;
Esto se consigue actualizando la vista automáticamente cuando cambia el modelo, o viceversa. Two-way data binding.
Disponemos de plantillas que extienden el vocabulario del código HTML para proporcionarnos la introducción de lógica en la representación de nuestra información.
<div ng-controller="AlbumCtrl">
<ul>
<li ng-repeat="image in images">
<img ng-src="{{image.thumbnail}}" alt="{{image.description}}">
</li>
</ul>
</div>
Scope. Es el responsable de detectar los cambios en el modelo y proporciona el contexto a las plantillas.
<!doctype html>
<html ng-app>
<head> ... </head>
<body>
<div ng-controller="GreetCtrl">
Hello {{name}}!
</div>
<div ng-controller="ListCtrl">
<ol>
<li ng-repeat="name in names">{{name}}</li>
</ol>
</div>
</body>
</html>
Controlador. Es el código con la lógica que comunica el modelo con la vista.
Modelo. Son los datos, que junto con la plantilla producen las vistas.
Vistas. Lo que el usuario visualiza. Parte de una plantilla, se funde con el modelo y se renderiza en el árbol DOM.
Vistas. Lo que el usuario visualiza. Parte de una plantilla, se funde con el modelo y se renderiza en el árbol DOM.
$ git clone https://github.com/tombatossals/angularjs-tutorial
$ git checkout phase1
$ git clone https://github.com/tombatossals/angularjs-tutorial
$ git checkout phase2