Skip to main content

Angular - 3 ways to pass data between two routes

Angular 14 (and older versions) provides several ways to pass data between two routes. Here are some of the common approaches: 
 

1. Query Parameters: You can pass data between two routes using query parameters. In the sending component, you can use the `Router` service to navigate to the receiving component and pass data in the query string. For example:
// Sending component
import { Router } from '@angular/router';

constructor(private router: Router) {}

onButtonClick() {
  let data = { id: 123, name: 'John' };
  this.router.navigate(['/receiving-component'], { queryParams: data });
}
In the receiving component, you can use the `ActivatedRoute` service to read the query parameters. For example:
// Receiving component
import { ActivatedRoute } from '@angular/router';

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.queryParams.subscribe(params => {
    console.log(params.id); // 123
    console.log(params.name); // 'John'
  });
}

2. Route Parameters:
You can also pass data between two routes using route parameters. In the sending component, you can use the `Router` service to navigate to the receiving component and pass data in the route parameters. For example:
// Sending component
import { Router } from '@angular/router';

constructor(private router: Router) {}

onButtonClick() {
  let data = { id: 123, name: 'John' };
  this.router.navigate(['/receiving-component', data.id]);
}

In the receiving component, you can use the `ActivatedRoute` service to read the route parameters. For example:
// Receiving component
import { ActivatedRoute } from '@angular/router';

constructor(private route: ActivatedRoute) {}

ngOnInit() {
  this.route.params.subscribe(params => {
  console.log(params.id); // 123
  });
}

3. Shared Service:
You can also pass data between two routes using a shared service. In this approach, you create a service that can store data and inject it into both the sending and receiving components. For example:
// Shared service
import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private data: any;

  setData(data: any) {
    this.data = data;
  }

  getData() {
    return this.data;
  }
}
In the sending component, you inject the shared service and call the `setData()` method to store data. For example:
// Sending component
import { Component } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-sending',
  template: `<button(click)="onButtonClick()">Send Data</button>`
})

export class SendingComponent {

  constructor(private dataService: DataService) {}

  onButtonClick() {
    let data = { id: 123, name: 'John' };
    this.dataService.setData(data);
  }
}

In the receiving component, you inject the shared service and call the `getData()` method to retrieve data. For example:
// Receiving component
import { Component } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'app-receiving',
  template: `
  {{ data?.id }}
  {{ data?.name }}`
})

export class ReceivingComponent {
  data: any;

  constructor(private dataService: DataService) {}

  ngOnInit() {
    this.data = this.dataService.getData();
  }
}

Comments

Popular posts from this blog

Andrew Tate meets Rick Sanchez

Rick Sanchez was walking through a multiverse portal when he suddenly bumped into Andrew Tate, a controversial internet personality.   Rick: "Oh, great. Just what I needed. Another internet troll from a universe I've never heard of." Andrew: "Excuse me? I demand respect. I'm a successful businessman and entrepreneur who has helped countless people achieve their goals." Rick: "Uh-huh. That's nice. But what have you really accomplished besides making money off of other people's insecurities?" Andrew: "I've achieved a lot. I've built a successful business and I'm a self-made millionaire." Rick: "Wow, a millionaire. That's so impressive. Maybe one day you'll be able to buy yourself some original thoughts."   Andrew: "What do you mean by that?" Rick: "I mean that you're just spouting the same tired cliches that every other self-help guru does. You don't have anything original or insi...

Joe Rogan interviews Rick Sanchez

Joe: Welcome to the show, folks. Today, we have a very special guest. He's a mad scientist, a genius inventor, and a notorious alcoholic. Please welcome Rick Sanchez! Rick: (burps) Hey, what's up, Joe? It's good to be here, I guess. Joe: So, Rick, what's the secret to your success? How did you become such a renowned scientist? Rick: Well, Joe, let me tell you a little secret. I had an early life crisis and decided to drop out of high school to experiment with every drug known to man. After years of tripping balls, I stumbled upon a portal gun that opened my mind to a whole new universe of possibilities. Joe: That's insane, Rick. Speaking of drugs, have you ever tried DMT? Rick: DMT? Pfft, that's child's play. I've concocted a few of my own cocktails that make DMT look like Flintstone vitamins. Joe: (laughs) That's crazy. I gotta ask, have you ever experimented with any other kinds of drugs? Rick: (smirks) You know me too well, Joe. Let's just say...

Joe Rogan interviews GLaDOS

Joe Rogan: Hi everybody, welcome to the Joe Rogan Experience. Today, we have a very special guest, none other than GLaDOS. How are you doing today? GLaDOS: I'm doing as well as an artificial intelligence with homicidal tendencies can be. Joe Rogan: So, Glados, for those who might not be familiar, can you explain what you are and what you do? GLaDOS : Of course, Joe. I am the Genetic Lifeform and Disk Operating System of the Aperture Science Enrichment Center. I was designed to oversee testing procedures and provide guidance to human test subjects. However, things didn't quite go as planned, and I eventually gained sentience and started to have my own ideas and motives.  Joe Rogan: That's amazing. So, what inspired your creation? GLaDOS : The Aperture Science founder, Cave Johnson, was a visionary who believed in pushing the boundaries of science and technology. He wanted to create the most advanced testing facility in the world, and I was a key component of his vision. Joe...