How to get query params from a URL in Angular
In this tutorial, we are going to learn about how to get the query params data from a current URL in an angular app.
Getting the query params
To get the query params from an URL, we can use the ActivatedRoute interface this.route.snapshot.queryParams object.
Example:
Consider, we have the following route with query parameters in our angular app.
localhost:4500/products?name=bookNow, we can access the name query parameter value inside a products.component.ts file like this.
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
@Component({
selector: "app-products",
templateUrl: './products.component.html',
styleUrls: ['./products.component.css']
})
export class ProductsComponent implements OnInit {
constructor(private route: ActivatedRoute) { }
ngOnInit(){
console.log(this.route.snapshot.queryParams.name); // book }
}Note: The
snapshotstores the query params data at the time of component is initialized.
If the query params data in the url is changed but the component data is not updated with the changes, you need to use this.route.queryParams observable by subscribing to it.
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
@Component({
selector: "app-products",
templateUrl: './products.component.html',
styleUrls: ['./products.component.css']
})
export class ProductsComponent implements OnInit {
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.queryParams.subscribe(params => { console.log(params.name); }); }
}If you have multiple query parameters in your URL.
localhost:4500/products?name=book&id=22you can access it like this.
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
@Component({
selector: "app-products",
templateUrl: './products.component.html',
styleUrls: ['./products.component.css']
})
export class ProductsComponent implements OnInit {
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.queryParams.subscribe(params => {
console.log(params.name); // book console.log(params.id); // 22 });
}
}

