1. Añadir navegación al app.module
Para ello, en app.module.ts:1. Añadimos import { RouterModule } from '@angular/router';
2. Creamos una constante que contenga todas las rutas:
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{ path: 'heroes', component: HeroesComponent } ];
3. Indicamos el método RouterModule.forRoot en el imports de @NgModule. Que indica la ruta (path) que asignamos al componente. Se puede asignar la ruta directamente o mejor asignarle la constante anterior.
imports: [
RouterModule.forRoot([
{path: 'heroes',component: HeroesComponent}
])
],
....
o mucho mejor
@NgModule({
imports: [
RouterModule.forRoot(appRoutes)
// other imports here
],
...
})
export class AppModule { }
4. Añadir <a routerLink="/heroes">Heroes</a> en el template dentro de un <nav>.5. Añadir <router-outlet></router-outlet> al final del template.
template: ` <h1>Angular Router</h1> <nav> <a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a> <a routerLink="/heroes" routerLinkActive="active">Heroes</a> </nav> <router-outlet></router-outlet> `
2. Añadir mas componentes
Para ello se añadirán mas elementos al array del método RouterModule.forRoot en el imports de @NgModule. ( o mejor en la constante appRoutes)
RouterModule.forRoot([
RouterModule.forRoot([
{path: 'heroes',component: HeroesComponent},
{path: 'otro',component: OtroComponent}
])
También se añadirá otro <a routerLink="/otro">Heroes</a> en el template dentro del <nav>. Quedando el template:template: `
<h1>{{title}}</h1>
<nav>
<a routerLink="/heroes">Heroes</a>
<a routerLink="/otro">Otro</a>
</nav>
<router-outlet></router-outlet>
`
3. Redirect to
Para ello se añadirán otro elementos al array del método RouterModule.forRoot en el imports de @NgModule, que haga referencia al redirect ( o mejor en la constante appRoutes)
RouterModule.forRoot([
{ path: 'detail/:id' , component: HeroDetailComponent }
En este caso le pasamos el id como parámetro a la ruta.
Pero en el componente se debe hacer estos import
RouterModule.forRoot([
{path: 'heroes',component: HeroesComponent},
{path: 'otro',component: OtroComponent},
{path: '',redirectTo:
'/dashboard', pathMatch: 'full'}
])
4. Navegación con parámetro (NO)
Para ello se añadirán otro elementos al array del método RouterModule.forRoot en el imports de @NgModule, que haga referencia a una ruta al que se le añade "/:parametro"
{ path: 'detail/:id' , component: HeroDetailComponent }
En este caso le pasamos el id como parámetro a la ruta.
Pero en el componente se debe hacer estos import
// Keep the Input import for now, we'll remove it later:
import { Component, Input, OnInit } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { Location } from '@angular/common';
Y además se debe importar el servicio que nos proporciona el Hero a partir del id.
Pero entonces la cosa se complica y para ello se va a utilizar una nueva estrategia en el punto siguiente.
No hay comentarios :
Publicar un comentario