Hello to all, welcome to therichpost.com. In this post, I will tell you, Angular 8 dynamic routing working example.
Black Friday Gift
In this post, I have made user component and in user component, I have many users with with dynamic urls with ids and that urls bring us to users information page.
Here are the complete steps and please follow them carefully:
1. Here are the basics commands to install angular 8 on your system:
npm install -g @angular/cli ng new angulardynamicid //Create new Angular Project $ cd angulardynamicid // Go inside the Angular Project Folder ng serve --open // Run and Open the Angular Project http://localhost:4200/ // Working Angular Project Url
2. Now you need to run below commands to generate components users and userdetails:
ng g component users ng g component userdetails
3. Now you need to add below code into your src/app/app.module.ts file:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { UsersComponent } from './users/users.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Routes, RouterModule } from '@angular/router';
import { UserdetailsComponent } from './userdetails/userdetails.component';
const appRoutes: Routes = [
{ path: 'user', component: UsersComponent },
{ path: 'user-detail/:id', component: UserdetailsComponent },
];
@NgModule({
declarations: [
AppComponent,
UsersComponent,
UserdetailsComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
RouterModule.forRoot(
appRoutes,
{ enableTracing: true } // <-- debugging purposes only
)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
4. Now you need to add below code into src/app/app.component.html file:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- <div class="jumbotron text-center">
<h1>Angular 6 Routing Example</h1>
</div> -->
<nav class="navbar navbar-expand-sm bg-light">
<ul class="nav nav-pills">
<li class="nav-item"><a class="nav-link" routerLink="/">Home</a></li>
<li class="nav-item"><a class="nav-link" routerLink="/user">users</a></li>
</ul>
</nav>
<br>
<div class="container-fluid">
<h3><router-outlet></router-outlet></h3>
</div>
For bootstrap styling, I have directly added bootstrap cdn but we can add it right also and for that you can follow this :- Add Bootstrap in Angular
5. Now you need to add below code into src/app/users/users.component.html file:
<h1>Users</h1> <ul class="nav nav-pills"> <li class="nav-item"><a class="nav-link" routerLink="/user-detail/1">user1</a></li> <li class="nav-item"><a class="nav-link" routerLink="/user-detail/2">user2</a></li> </ul>
6. Now you need to add below code into src/app/userdetails/userdetails.component.html file:
<h2> User No: {{id}}</h2>
7. Now you need to add below code into src/app/userdetails/userdetails.component.ts file:
import { Component, OnInit } from '@angular/core';
import {Router, ActivatedRoute, Params} from '@angular/router';
@Component({
selector: 'app-userdetails',
templateUrl: './userdetails.component.html',
styleUrls: ['./userdetails.component.css']
})
export class UserdetailsComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute) {}
public id: string;
ngOnInit() {
// Note: Below 'queryParams' can be replaced with 'params' depending on your requirements
this.id = this.activatedRoute.snapshot.paramMap.get('id');
console.log(this.id);
}
}
This is it and if you have any query related to this post then please do comment below.
Jassa
Thank you
