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=book
Now, 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
snapshot
stores 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=22
you 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 });
}
}