You can add many more outlets and routes, at the top level and in nested levels, creating a navigation tree with many branches. The router will generate the URL to go with it.
app.module.ts
import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angular/core'; import {FormsModule} from '@angular/forms'; import {HttpModule} from '@angular/http'; import {AppComponent} from './app.component'; import {HomeComponent} from './home/home.component'; import {UsersComponent} from './users/users.component'; import {ServersComponent} from './servers/servers.component'; import {UserComponent} from './users/user/user.component'; import {EditServerComponent} from './servers/edit-server/edit-server.component'; import {ServerComponent} from './servers/server/server.component'; import {ServersService} from './servers/servers.service'; import {RouterModule, Routes} from '@angular/router'; const appRoutes: Routes = [ {path: '', component: HomeComponent}, { path: 'users', component: UsersComponent, children: [ {path: ':id/:name', component: UserComponent}] }, { path: 'servers', component: ServersComponent, children: [ {path: ':id', component: ServerComponent}, {path: ':id/edit', component: EditServerComponent} ] }, ]; @NgModule({ declarations: [ AppComponent, HomeComponent, UsersComponent, ServersComponent, UserComponent, EditServerComponent, ServerComponent ], imports: [ BrowserModule, FormsModule, HttpModule, RouterModule.forRoot(appRoutes) ], providers: [ServersService], bootstrap: [AppComponent] }) export class AppModule { }
users.component.html
<div class="row"> <div class="col-xs-12 col-sm-4"> <div class="list-group"> <a [routerLink]="['/users',user.id,user.name]" href="#" class="list-group-item" *ngFor="let user of users"> {{ user.name }} </a> </div> </div> <div class="col-xs-12 col-sm-4"> <!-- <app-user></app-user>--> <router-outlet></router-outlet> </div> </div>
servers.component.html
<div class="row"> <div class="col-xs-12 col-sm-4"> <div class="list-group"> <a [routerLink]="['/servers',server.id]" [fragment]="'loading'" href="#" class="list-group-item" *ngFor="let server of servers"> {{ server.name }} </a> </div> </div> <div class="col-xs-12 col-sm-4"> <router-outlet></router-outlet> <!-- <button class="btn btn-primary" (click)="onReload()">Reload Page</button>--> <!-- <app-edit-server></app-edit-server>--> <!-- <hr>--> <!-- <app-server></app-server>--> </div> </div>
References
https://angular.io/guide/router