Este tutorial muestra cómo se puede implementar la siguiente aplicación de libro de visitas:

Se necesitan las siguientes aplicaciones:

Instalación de Angular CLI
npm install -g @angular/cli

Generar nuevo proyecto (libro de visitas)
ng new guestbook

Instalación de la biblioteca Bootstrap vía gestor de paquetes ’npm’:
npm install –save bootstrap

Iniciar servidor de desarrollo para probar la aplicación:
ng serve

La aplicación está posteriormente disponible en la siguiente dirección:
http://localhost:4200/

Importación del proyecto en Visual Studio Code. Como se puede ver, dentro de index.html aparece una etiqueta . Dado que a partir de ahora realizaremos todos los cambios dentro de este único archivo index.html, en Angular se habla de una ‘Single Page Application’.

Con la etiqueta se pueden inyectar los componentes ‘app’ necesarios, p. ej. la plantilla HTML (app.component.html) y el archivo CSS correspondiente.

El contenido del archivo TypeScript ‘app.component.spec.ts’ se mostrará más tarde como JavaScript en lugar de la etiqueta.

TypeScript es un lenguaje de programación desarrollado por Microsoft, basado en las propuestas para el futuro estándar ECMAScript 6. Constructos de lenguaje de TypeScript, como clases, herencia, módulos, funciones anónimas y genéricos, también fueron adoptados en ECMAScript 6.
El compilador de TypeScript desarrollado por Microsoft compila código TypeScript a ECMA Script 3 (ES3) y opcionalmente a ECMA Script 5 (ES5). Cualquier código JavaScript es también un código TypeScript válido, de modo que bibliotecas JavaScript comunes (como jQuery o AngularJS) pueden usarse en TypeScript. [wikipedia]

Además del archivo de configuración, disponemos de una visión general de todos los módulos utilizados (NgModules) y las funciones dentro de ‘app.modules.ts’.

Los paquetes necesarios (dependencies) se encuentran en ‘package.json’.

Toda la aplicación se inicia a través del archivo ‘main.ts’. Este se ejecuta primero.

Orden de los pasos:
1. Cargar ‘AppModule’
2. Cargar todos los ‘AppComponent’
3. Inyectar los componentes como etiqueta ‘app-root’ dentro de index.html

Se puede crear un nuevo componente con el siguiente comando:
ng generate component name
o
ng g c name

Para implementar la aplicación prevista, se necesitan los siguientes componentes:

  • Root component
    • Header component
    • Message creation component
    • Message list component
      • Message edit component

Tras la creación de los componentes, se declaran bajo @NgModule. Sin embargo, los componentes no se especifican en bootstrap. Bootstrap hace referencia al componente raíz.

Los componentes creados se pueden probar usando las etiquetas correspondientes:

Para implementar la interfaz de usuario (UI), usaremos Bootstrap:
npm install –save bootstrap

El CSS de Bootstrap se puede importar después en ‘angular.json’:

Tuve que reiniciar el servidor después.

Una página con Bootstrap puede tener, por ejemplo, el siguiente aspecto:
https://jsfiddle.net/netperformance/a6qwk8bm/

Dentro del proyecto, las páginas se estructuran y anidan de la siguiente manera:

Los códigos fuente de los diferentes componentes se pueden encontrar aquí:

Como se puede ver en la siguiente imagen, he insertado tres conjuntos de datos de ejemplo (messages):

Para crear los datos, primero debemos generar una clase de mensaje vía
TypeScript como se muestra en message.model.ts

A continuación, dentro de la lista de mensajes (message-list.component.ts), podemos crear los objetos o instancias de la clase ‘Message’:

Para mostrar o leer la matriz ‘Message[]’, podemos usar la directiva Angular ‘ngFor’ dentro de ‘message-list.component.html’. El uso de las directivas queda habilitado al incluir ‘BrowserModule’ en ‘NgModules’:

La estructura de la página y los mensajes creados también se pueden visualizar fácilmente con la aplicación Augury:

A continuación, al hacer clic en el enlace ’edit’, quiero reemplazar la lista de mensajes de la derecha por ‘message-edit.component.html’. Para ello, primero debemos activar el ‘Routing’:

Después, podemos indicar dónde queremos usar el routing mediante ‘’:

Ahora solo falta ajustar el enlace ’edit’ correspondientemente:

Por último, debemos especificar el ‘base href’ dentro de index.html:

El resultado es el siguiente: