Implementación de Rutas en el Proyecto
Clase 25 de 80 • Curso de Angular 4
Contenido del curso
Introducción a Angular 4
Setup del Ambiente de Trabajo
Conceptos Básicos
- 9

Para qué nos sirven los Módulos y Componentes
08:10 min - 10

Tipos de Data Binding y String Interpolation
05:05 min - 11

Property Binding
06:04 min - 12

Event Binding
03:04 min - 13

ngModel y two way binding en Angular
05:12 min - 14

Directivas en Angular 4 y ngFor
07:39 min - 15

Cómo usar ngIf en Angular 4.0
03:04 min - 16

Instalando librerías con NPM (Google Maps)
06:48 min
Directivas
Angular UI
Ruteo
- 24

Qué hace el router en Angular 4
03:11 min - 25

Implementación de Rutas en el Proyecto
Viendo ahora - 26

Href vs router link: navegación angular
02:27 min - 27

Resaltando el link activo con CSS para indicar visualmente en que componente nos encontramos
01:53 min - 28

Parámetros de ruta con routerLink en Angular
06:01 min - 29

Parámetros tipo Query
03:53 min - 30

Creando una vista de detalle para el proyecto
09:06 min - 31

Página de contacto Angular desde cero
07:45 min
Servicios
- 32

Servicios en Angular para compartir datos
00:58 min - 33

Creando nuestro propio servicio
07:11 min - 34

Configurando Firebase en nuestro proyecto
05:12 min - 35

Guardando Records en Firebase
12:20 min - 36

Obteniendo records desde Firebase
08:40 min - 37

Obteniendo coordenadas usando Geocoding
13:45 min - 38

Reto: Crear una vista para editar records
09:29 min - 39

Mostrando marcadores en el Mapa de Google
03:02 min
Conexión Remota (Http y Sockets)
Pipes
Animaciones en Angular
Testing en Angular
Autenticación y Protección de Rutas
- 59

Cómo funcionan los JSON Web Tokens
03:05 min - 60

Preparación de vistas para login y registro
11:58 min - 61

Registrando usuarios
07:29 min - 62

Loggeando usuarios
07:18 min - 63

Guardias canActivate en Angular: Proteger rutas con autenticación
11:09 min - 64

Cómo integrar Facebook login con Firebase
09:08 min - 65

Logout en Angular con Firebase
05:28 min
RxJS
- 66

Cómo funciona RxJS con metáfora de oficina
02:09 min - 67

Mostrar email del usuario logueado en Angular
06:32 min - 68

Uso de los Observables
04:30 min - 69

Cómo implementar type ahead con Observables y RxJS
10:43 min - 70

Implementar formularios reactivos con type ahead
07:58 min - 71

Cómo rellenar campos automáticamente con Google
01:28 min
Publicando nuestro proyecto
Fin del curso
Sesiones en vivo
Contenido Bonus
Aprende a configurar rutas en Angular 4 paso a paso: desde importar correctamente RouterModule.forRoot hasta crear los componentes detalle y lugares, organizar el layout con router-outlet y definir paths limpios para navegar por URL. Verás la convención de nombres, los cambios mínimos en el selector y templateUrl, y cómo mantener el navbar y el footer como estructura global.
¿Cómo configurar rutas en Angular con RouterModule?
Configurar rutas requiere dos acciones clave: importar RouterModule desde @angular/router e inicializar con forRoot usando una constante de rutas. Esto se agrega en imports del módulo principal y permite que la aplicación reconozca cada path y su component asociado.
¿Qué hace forRoot en la inicialización?
- Registra las rutas de la app una sola vez en el módulo raíz.
- Conecta el router con la configuración definida en la constante de rutas.
- Habilita la navegación por URL sin recargar la página.
¿Cómo se definen paths y components?
- Crea una constante, por ejemplo, appRoutes.
- Asigna cada path a su component correspondiente.
- Usa un path vacío para la vista inicial.
import { RouterModule, Routes } from '@angular/router';
import { DetalleComponent } from './detalle/detalle.component';
import { LugaresComponent } from './lugares/lugares.component';
export const appRoutes: Routes = [
{ path: 'detalle', component: DetalleComponent },
{ path: 'lugares', component: LugaresComponent },
{ path: '', component: LugaresComponent }
];
// en el módulo principal
@NgModule({
imports: [RouterModule.forRoot(appRoutes)],
declarations: [DetalleComponent, LugaresComponent]
})
export class AppModule {}
¿Cómo crear y registrar el componente detalle?
Se crea una carpeta llamada detalle y dentro dos archivos siguiendo la convención: detalle.component.ts y detalle.component.html. El primero define el selector y el templateUrl; se puede omitir styleUrls para mantener el componente mínimo.
¿Qué convención de nombres deben seguir los archivos?
- Usa el patrón: nombre + .component + .ts o .html.
- Ejemplo: detalle.component.ts y detalle.component.html.
- La clase se nombra en PascalCase: DetalleComponent.
¿Qué cambios mínimos requiere el componente?
- Cambiar el selector a app-detalle.
- Apuntar el templateUrl a ./detalle.component.html.
- Quitar styleUrls si no se usa.
import { Component } from '@angular/core';
@Component({
selector: 'app-detalle',
templateUrl: './detalle.component.html'
})
export class DetalleComponent {}
<!-- detalle.component.html -->
detalle
¿Cómo se registra en el módulo y se agrega la ruta?
- Añade DetalleComponent en declarations del módulo.
- Agrega el path 'detalle' apuntando a DetalleComponent en appRoutes.
- Refresca y visita /detalle para validar la vista.
¿Cómo separar layout global y vistas con router-outlet?
Para que el layout general no se duplique, el navbar y el futuro footer viven en app.component.html, y las vistas específicas se cargan dentro de router-outlet. Así, al entrar a /detalle o /lugares, solo cambia el contenido central.
¿Dónde colocar router-outlet y el layout global?
- Deja el navbar en app.component.html.
- Inserta
debajo del navbar. - Mantén este archivo como contenedor global.
<!-- app.component.html -->
<nav>...navbar...</nav>
<router-outlet></router-outlet>
¿Cómo mover la vista de lugares a su propio componente?
- Duplica la carpeta de detalle y renómbrala a lugares.
- Renombra archivos a lugares.component.ts y lugares.component.html.
- Actualiza selector y templateUrl para LugaresComponent.
- Corta el contenido de mapa y lista desde app.component.html y pégalo en lugares.component.html.
- Mueve la lógica asociada desde app.component.ts hacia lugares.component.ts.
import { Component } from '@angular/core';
@Component({
selector: 'app-lugares',
templateUrl: './lugares.component.html'
})
export class LugaresComponent {}
<!-- lugares.component.html -->
<!-- mapa y lista de lugares -->
¿Cómo verificar la navegación por URL?
- Define el path 'lugares' y el path vacío apuntando a LugaresComponent.
- Visita /lugares y / para ver mapa y lista.
- Visita /detalle para ver la vista de detalle con el navbar.
¿Te quedó alguna duda sobre la configuración de rutas o la organización del layout con router-outlet? Cuéntame en qué parte quieres profundizar.