Angular-Loiane-Training

Este repositorio contem exemplos documentados e descricoes dos conteudos estudados ao longo do curso de Angular da Loiane

View project on GitHub

Criacao Modulo Rotas

Podemos organizar as rotas em modulos (modularizacao do angular), deste modo o codigo fonte da aplicacao fica organizado. Similar os modulos ja vistos antes um modulo de rotas possui a mesma estrutura.

import { RouterModule, Routes } from '@angular/router';
import { NgModule } from "@angular/core";
import { HomeComponent } from './_06-rotas/rotas/home/home.component';
import { LoginComponent } from './_06-rotas/rotas/login/login.component';
import { CursosRotasComponent } from './_06-rotas/rotas/cursos/cursos.component';
import { CursoDetalheComponent } from './_06-rotas/rotas/curso-detalhe/curso-detalhe.component';
import { CursoNaoEncontradoComponent } from './_06-rotas/rotas/curso-nao-encontrado/curso-nao-encontrado.component';

const APP_ROUTES: Routes = [
    { path: '', component: HomeComponent },
    { path: 'login', component: LoginComponent },
    { path: 'cursos', component: CursosRotasComponent },
    { path: 'curso/:id', component: CursoDetalheComponent },
    { path: 'nao-encontrado', component: CursoNaoEncontradoComponent }
]

@NgModule({
    imports: [
        RouterModule.forRoot(APP_ROUTES)
    ],
    exports:[
        RouterModule
    ]
})
export class AppRoutingModule {}

note que foram mantidas as rotas declaradas no documento Configurando Rotas Simples, no meta-dado imports e declarada a configuracao, ou seja ModuleWithProviders que e o retorno do metodo forRoot() e no meta-dado exports e decalra a classe RouterModule.

#

Incluindo o modulo de rotas no modulo principal, app.module.ts

para que o modulo de rotas seja disponibilizado para a aplicacao e necessario inclui-lo no modulo principal da aplicacao.

...

import { AppRoutingModule } from './app.routing.module';

@NgModule({
  declarations: [
    ...
  ],
  imports: [ 
     ...
     AppRoutingModule
  ],
  providers: [
    ...
  ],

  bootstrap: [AppComponent]
})
export class AppModule { }