Możesz przesyłać dane za pomocą usługi.
Utwórz usługę przechowującą dane podczas przełączania komponentów. Poniżej znajduje się przykład.
import { Injectable } from '@angular/core';
@Injectable()
export class TransfereService {
constructor(
private router:Router,
private companyServiceService:CompanyServiceService
) { }
private data;
setData(data){
this.data = data;
}
getData(){
let temp = this.data;
this.clearData();
return temp;
}
clearData(){
this.data = undefined;
}
}
Rozważmy teraz 2 komponenty Nadawca i odbiorca.
Kod nadawcy: Ten kod ustawia dane w usłudze i przechodzi do odbiornika.
import { Router } from '@angular/router';
import { TransfereService } from './services/transfer.service';
export class SenderComponent implements OnInit {
constructor(
private transfereService:TransfereService,
private router:Router) {}
somefunction(data){
this.transfereService.setData(data);
this.router.navigateByUrl('/reciever');//as per router
}
}
Receiver Kod: Ten kod pobiera dane z serwisu i kasuje dane, jak również.
import { Router } from '@angular/router';
import { TransfereService } from './services/transfer.service';
export class RecieverComponent implements OnInit {
data = this.transfereService.getData();
constructor(
private transfereService:TransfereService,
private router:Router) {
if(this.data){
// do whatever needed
}
else{
this.router.navigateByUrl('/sender');
}
}
}
https://angular.io/docs/ts/latest/cookbook/component-communication.html dobrze opisuje ten temat. Jeśli to nie rozwiąże problemu, opublikuj kod, który pokazuje, co próbujesz osiągnąć, co próbowałeś i gdzie się nie udało. –