Angular 2 Router

Page and Routing

Angular 2 has routing feature same as Angular 1.
Different URL uses different page template.

In this example, use following url and create page template

URL Template, Component
/ Redirect /home
/home App2Component
/detail DetailComponent

This entry is series from Angular 2 GetStarted. Other source files are there.

main.ts doesn’t have change at all.

app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

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

import { AppComponent }   from './app.component';
import { App2Component } from './app2.component';
import { SubComponent }   from './sub.component';
import { DetailComponent } from "./detail.component";


@NgModule({
    imports:      [ BrowserModule, AppRoutingModule ],
    declarations: [ AppComponent, App2Component, SubComponent, DetailComponent ],
    bootstrap: [ AppComponent ]
})
export class AppModule { }

Import all Components and, Routing Module
Routing module defines routes.

Routing Module(app-routing.module.ts)

import { NgModule }             from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { AppComponent } from "./app.component";
import { App2Component } from "./app2.component";
import { DetailComponent } from "./detail.component";

const routes: Routes = [
    { path: '', redirectTo: '/home', pathMatch: 'full'},
    { path: 'home',  component: App2Component },
    { path: 'detail', component: DetailComponent }
];
@NgModule({
    imports: [ RouterModule.forRoot(routes) ],
    exports: [ RouterModule ]
})
export class AppRoutingModule {}

All route defines are in Routes
/home, /detail, and / redirects to home

AppComponent(app-component.ts)

This also includes routing. From previous section, Routes doesn’t have this definition.
But, working with router, we need router-outlet

import { Component } from '@angular/core';

@Component({
    selector: 'app',
    template: `
        <router-outlet></router-outlet>
        `
})
export class AppComponent {
    title = "Home";
}

Results

All sources ware done.
Please access following URL

  • localhost:3000
  • localhost:3000/home
  • localhost:3000/detail

localhost:3000 redirect to /home.