Professional Documents
Culture Documents
Presentacin
Desde
OpenWebinars te presentamos este prctico Tutorial de iniciacin de AngularJS, el
Framework Javascript impulsado por Google.
Aprenders de forma profesional a realizar aplicaciones web con JavaScript gracias a
nuestro curso de AngularJS y TypeScript. Nuestros profesores te ensean desde cero
TypeScript para usarlo en el desarrollo de aplicaciones AngularJS. Conseguirs entender
cules son las buenas prcticas y los errores a evitar. Regstrate ahora y comienza a
obtener estos potentes conocimientos, el conocimiento que todo desarrollador actual
desea.
Si quieres convertirte en un desarrollador profesional inscribete en nuestro
Curso Online de
AngularJS y Typescript
. Nuestro experto te ensears las mejores prcticas y trucos para
sacarle el mximo partido a esta tecnologa.
Introduccin
AngularJS es un framework de JavaScript. Es una librera escrita en JavaScript y puede ser
agregada a una pgina HTML con una etiqueta
<script>
. AngularJS extiende atributos
HTML con directivas, y une datos al HTML con expresiones.
Es una buena idea colocar los scripts en la parte inferior del elemento
<body>
, justo antes
de la etiqueta
</body>
. Esto mejora la carga de la pgina, ya que la carga de HTML no est
bloqueado por los scripts de carga.
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.18/angular.min.js"
></
script
>
AngularJS en HTML
AngularJS extiende HTML con
ng-directives(Directivas de AngularJS), y enlaza datos a
HTML con expresiones {
{}}
: Ejemplo
<
div
ng-app
=
""
>
<
p
>Mi primera expresion: {{ 5 + 5 }}</
p
>
</
div
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
Qu es AngularJS?
AngularJS hace que sea fcil de desarrollar aplicaciones web modernas de una sola
pgina (ZEPA).
AngularJS integra datos de aplicacin a elementos HTML.
AngularJS puede clonar y repetir elementos HTML.
AngularJS puede ocultar y mostrar elementos HTML.
AngularJS puede aadir cdigo "detrs" de los elementos HTML.
AngularJS admite la validacin de entrada.
Expresiones en AngularJS
Las expresiones en AngularJS se escriben dentro de llaves dobles: {
{expresin}}
.
Aprende ms con el Curso Online de AngularJS y TypeScript
Directivas de AngularJS
Las directivas en AngularJS son atributos HTML con el prefijo
ng
. La directiva
ng-app
inicializa una aplicacin AngularJS. La directiva
ng-initinicializa datos de AngularJS.
Ejemplo:
<
div
ng-app
=
""
ng-init
=
"nombre='Paco'"
>
<
p
>El nombre es: {{ nombre }}</
p
>
</
div
>
<
title
>Title</
title
>
<
style
>
body{
width
:
500px
;}</
style
>
<
script
type
=
"application/javascript"
>
function
$init
()
{
return
true
;}
</
script
>
<
p
checked
=
""
class
=
"title"
id
=
"title"
>Title</
p
>
<!-- here goes the rest of the page
Expresiones de AngularJS
La expresiones en AngularJS son escritas dentro de dobles llaves:
{{expresin}}Las
expresiones en Angulars enlazan datos al HTML de la misma forma que la directiva
ng-bind
. AngularJS mostrar los datos de salida exactamente donde la expresin fue
escrita. Las expresiones de AngularJS son mucho ms que las expresiones de JavaScript:
Estas pueden contener literales, operadores y variables. Por ejemplo:
{{
4+
4}}
{{ nombre +
" "+ apellidos }}
Nmeros de AngularJS
Los nmeros de AngularJS son como los nmeros en JavaScript: Ejemplo:
<
div
ng-app
=
""
ng-init
=
"cantidad=1;precio=5"
>
<
p
>Total en euros: {{ cantidad * precio }}</
p
>
</
div
>
Usar
ng-initno es muy comn. Aprenders una mejor forma de inicializar datos cuando
hablemos de los controladores.
Arrays en AngularJS
Los arrays en AngularJS se comportan de la misma manera que en JavaScript. Como vas
observando si sabes JavaScript puedes aprender AngularJS de forma rpida. Ejemplo:
<
div
ng-app
=
""
ng-init
=
"frutas=['manzana','sandia','naranja','fresa']"
>
<
p
>Las fruta es {{ frutas[2] }}</
p
>
<!-- El resultado ser: "La fruta es naranja" -->
</
div
>
Objetos en AngularJS
Al igual que en Javascript, en AngularJS accedemos a las propiedades de los objetos
usando el operador . (punto). Ejemplo:
<
div
ng-app
=
""
ng-init
=
"coche={marca:'Renault',modelo:'Megane Coupe'}"
>
<
p
>La marca del coche es {{ coche.marca }}</
p
>
<!-- El resultado ser: "La marca del coche es Renault" -->
</
div
>
Usando
ng-bind
:
<
div
ng-app
=
""
ng-init
=
"coche={marca:'Renault',modelo:'Megane Coupe'}"
>
<
p
>La marca del coche es <
span
ng-bind
=
"coche.marca"
></
span
></
p
>
<!-- El resultado ser: "La marca del coche es Renault" -->
</
div
>
Directivas de AngularJS
Las directivas son atributos que extienden a los ya existentes en HTML y comienzan con el
prefijo
ng-
. La directiva
ng-appinicializa una nueva aplicacin de AngularJS. La directiva
ng-initinicializa datos de la aplicacin. Las directiva
ng-modelenlaza datos de la
aplicacin a elementos HTML. En el siguiente ejemplo podrs ver el uso de las tres
directivas:
<
div
ng-app
=
""
ng-init
=
"nombre='Paco'"
>
<
p
>Nombre: <
input
type
=
"text"
ng-model
=
"nombre"
></
p
>
<
p
>Has escrito: {{ nombre }}</
p
>
</
div
>
Enlazado de Datos
La expresin
{{nombre}}
, en el ejemplo de arriba, es una expresin de enlazado de datos
de AngularJS. El enlazado de datos en AngularJS, sincroniza las expresiones de AngularJS
con datos de AngularJS.
{{nombre}}est sincronizado con
ng-model="nombre"
. En el
siguiente ejemplo dos campos de texto estn sincronizados con dos directivas n
g-model
:
<
div
ng-app
=
""
ng-init
=
"cantidad=1;precio=5"
>
Cantidad: <
input
type
=
"number"
ng-model
=
"cantidad"
>
Costo:
<
input
type
=
"number"
ng-model
=
"precio"
>
Precio total: {{ quantity * price }}
</
div
>
<
div
ng-app
=
""
ng-init
=
"frutas=['Manzana','Fresa','Banana']"
>
<
ul
>
<
li
ng-repeat
=
"f in frutas"
>
{{ f }}
</
li
>
</
ul
>
<
div
>
</
div
></
div
>
AngularJS es perfecto para aplicaciones CRUD (Create Read Update Delete). Slo tienes
que pensar como si esos objetos fuesen registros de una base de datos.
Resumen
Directiva ng-app
La directiva
ng-appdefine el elemento raz de una aplicacin AngularJS. La directiva
ng-appinicializar y arrancar automticamente la aplicacin AngularJS una vez la pgina
ha cargado. Ms tarde aprenders como
ng-app puede tener un valor (como
ng-app="miModulo"
), para conectar mdulos de cdigo.
Directiva ng-init
La directiva
ng-initdefine los valores iniciales de los datos de una aplicacin AngularJS.
Como anteriormente he comentado, normalmente, no se debe usar
ng-init
. Usaremos un
controlador o un mdulo en lugar de esto. Lo aprenders ms adelante.
Directiva ng-model
La directiva
ng-modelenlaza elemento HTML con datos de la aplicacin AngularJS. La
directiva n
g-model
tambin nos ofrece las siguientes funcionalidades:
Provee validacin de tipos de los datos de la aplicacin ( nmero, email, requerido).
Provee de estado a los datos de la apicacin (invalid, dirty, touched, error).
Provee de clases CSS a los elementos HTML.
Enlaza elementos HTML a formularios.
Directiva ng-repeat
La directiva
ng-repeatclona elementos HTML por cada elemento dentro de una coleccin
(array).
Controladores en AngularJS
Las aplicaciones AngularJS son controladas por los controladores. Un controlador no es
ms que un objeto JavaScript, que se crea con el constructor de objetos de JavaScript. El
mbito de la aplicacin est definido por
$scopey se corresponde con el elemento HTML
asociado a la aplicacin. Ejemplo:
<
div
ng-app
=
""
ng-controller
=
"cochesController"
>
Marca: <
input
type
=
"text"
ng-model
=
"coche.marca"
><
br
>
Modelo: <
input
type
=
"text"
ng-model
=
"coche.modelo"
><
br
>
<
br
>
El Coche es: {{coche.marca + " " + coche.modelo}}
</
div
>
<
script
>
function
cochesController
($scope)
{
$scope.coche = {
marca:
"Audi"
,
modelo:
"A5"
};
}
</
script
>
x = $scope.coche;
returnx.marca +
x = $scope.coche;
returnx.marca +
Filtros
Los filtros se pueden agregar a las expresiones y a las directivas mediante un carcter de
barra vertical |
. Los filtros de AngularJS se usan para transformar datos.
Filtro
currency
filter
lowercase
orderBy
uppercase
Descripcin
Da formato de moneda a un nmero.
Selecciona un subconjunto de elementos de un array.
Da formato a una cadena convirtindola en minsculas.
Ordena un array segn una expresin
Da formato a una cadena convirtindola en maysculas.
El filtro l
owercase
convierte una cadena de texto a minsculas: Ejemplo:
<
div
ng-app
=
""
ng-controller
=
"facturaController"
>
<
input
type
=
"number"
ng-model
=
"cantidad"
>
<
input
type
=
"number"
ng-model
=
"precio"
>
<
p
>Total = {{ (cantidad * precio) | currency }}</
p
>
</
div
>
El DOM HTML
AngularJS tiene sus propios atributos en HTML que actan como directivas. A continuacin
veremos algunas directivas que manejan objetos del DOM HTML.
La directiva ng-disabled
La directiva
ng-disabledenlaza datos de la aplicacin directamente al atributo HTML
deshabilitado. Ejemplo:
<
div
ng-app
=
""
>
<
p
>
<
button
ng-disabled
=
"misDatos"
>Haz Click!</
button
>
</
p
>
<
p
>
<
input
type
=
"checkbox"
ng-model
=
"misDatos"
>Botn
</
p
>
</
div
>
Explicacin: La directiva
ng-disabledenlaza el dato "misDatos" al atributo HTML disabled.
La directiva
ng-modelenlaza "misDatos" al contenido (valor) del input de tipo checkbox
HTML.
La directiva ng-show
La directiva
ng-show
oculta o muestra un elemento HTML. Ejemplo:
<
div
ng-app
=
""
>
<
p
ng-show
=
"true"
>Soy visible.</
p
>
<
p
ng-show
=
"false"
>Soy invisible.</
p
>
</
div
>
Tambin puedes hacer uso de una expresin que se evala a verdadero o falso (como por
ejemplo
ng-show="puntos < 10"
), para ocultar y mostrar elementos HTML. En el
siguiente artculo veremos los Eventos. Suscrbete para recibirlo en tu email tan pronto
como se publique.
Eventos
AngularJS tiene sus propias directivas de eventos HTML.
La Directiva ng-click
La directiva
ng-click
define un evento click de AngularJS. Ejemplo:
<
div
ng-app
=
""
ng-controller
=
"miController"
>
<
button
ng-click
=
"count = count + 1"
>Haz click!</
button
>
<
p
>{{ count }}</
p
>
</
div
>
El valor n
g-show="true"
(valor booleano) hace que el elemento sea visible.
El valor n
g-show="false"
(valor booleano) hace que el elemento sea invisible.
Ejemplo:
<
div
ng-app
=
""
ng-controller
=
"cocheController"
>
<
button
ng-click
=
"mostrarocultar()"
>Mostrar/Ocultar</
button
>
<
p
id
=
"coche"
ng-show
=
"mivariable"
>
Marca: <
input
type
=
"text"
ng-model
=
"coche.marca"
><
br
>
Modelo: <
input
type
=
"text"
ng-model
=
"coche.modelo"
><
br
>
<
br
>
El Coche es un {{coche.marca+ " " + coche.modelo}}
</
p
>
</
div
>
<
script
>
function
cocheController
($scope)
{
$scope.coche= {
marca:
"Audi"
,
modelo:
"A5"
};
$scope.mivariable=
true
;
$scope.mostrarocultar=
function
()
{
$scope.mivariable= !$scope.mivariable;
};
}
</
script
>
con id c
oche
.
Mdulos
Tus aplicaciones en AngularJS estarn compuestas por mdulos. Todos los controladores
de AngularJS deben pertenecer a un mdulo.
Con el uso de mdulos mantenemos nuestro cdigo limpio y bien organizado.
A continuacin te pongo un ejemplo de aplicacin AngularJS que usa mdulos.
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
<
script
src
=
"miAplicacion.js"
></
script
>
<
script
src
=
"miControlador.js"
></
script
>
Mdulos de AngularJS
Usando un controlador simple:
<!DOCTYPE html>
<
html
>
<
body
>
<
div
ng-app
=
""
ng-controller
=
"miControlador"
>
{{ nombre + " " + apellidos }}
</
div
>
<
script
>
function
miControlador
($scope)
{
$scope.nombre =
"Mario"
;
$scope.apellidos =
"Flores"
;
}
</
script
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
</
body
>
</
html
>
<!DOCTYPE html>
<
html
>
<
head
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
</
head
>
<
body
>
<
div
ng-app
=
"miAplicacion"
ng-controller
=
"miControlador"
>
{{ nombre + " " + apellidos }}
</
div
>
<
script
>
varapp = angular.module(
"miAplicacion"
, []);
app.controller(
"miControlador"
,
function
($scope)
{
$scope.nombre =
"Mario"
;
$scope.apellidos =
"Flores"
;
});
</
script
>
</
body
>
</
html
>
*Podrs notar que en la segunda versin con mdulos hemos cargado AngularJS en la
seccin <head>.
<
body
>
<
div
ng-app
=
"miAplicacion"
ng-controller
=
"miControlador"
>
{{ nombre + " " + apellidos }}
</
div
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
<
script
>
varapp = angular.module(
"miAplicacion"
, []);
app.controller(
"miControlador"
,
function
($scope)
{
$scope.nombre =
"Mario"
;
$scope.apellidos =
"Flores"
;
});
</
script
>
</
body
>
</
html
>
<
div
ng-app
=
"myApp"
ng-controller
=
"myCtrl"
>
{{ firstName + " " + lastName }}
</
div
>
<
script
src
=
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"
></
script
>
<
script
src
=
"myApp.js"
></
script
>
<
script
src
=
"myCtrl.js"
></
script
>
</
body
>
</
html
>