by Sai gowtham

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.

products.component.ts
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.

products.component.ts
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.

products.component.ts
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    });
  }
}

Top Udemy Courses

JavaScript - The Complete Guide 2020 (Beginner + Advanced)
JavaScript - The Complete Guide 2020 (Beginner + Advanced)
45,614 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
284,472 students enrolled
40 hours of video content
View Course
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
130,921 students enrolled
21 hours of video content
View Course