Angular 6 - routing i ngOnInit()

0

Witam.
Mam zrobiony routing na dokumenty

  {
    path: 'dokumenty/:id',
    component: DokumentyComponent, canActivate: [AuthGuard]
  },

W menu mam odnośniki do tego komponentu np:

<li>
  <a routerLink="/dokumenty/1">Faktury sprzedaży</a>
</li>
<li>
  <a routerLink="/dokumenty/2">Paragony</a>
</li>
<li>
  <a routerLink="/dokumenty/3">Wydania zewnętrzne</a>
</li>

Loguje się, z menu wybieram Faktury sprzedaży, pokazują się faktury, będąc na fakturach chce przejść na Paragony i owszem tytuł komponentu się zmienia ale observable już nie, ponieważ w tabelce mam dalej faktury.

Tabelkę generuje tak: *ngFor="let document of dokumenty | async; let i = index"

W komponencie mam:

dokumenty: Observable<Array<Dokument>>;
ngOnInit(){
this.dokumenty = this.http.GetDokumentyKontrahenta(this.typDokumentu, kodKontrahenta, this.dataOd, this.dataDo);
 //this.typDokumentu to nasz parametr z ActivatedRoute
}
0

Musisz wykorzystać Activated Route i zasubskrybować się na zmianę parametru w adresie URL i na tej podstawie pobrac inne dokumenty.

https://angular-2-training-book.rangle.io/v/v2.3/handout/routing/routeparams.html

0

Tak robie, ale w ngOnInit(), który się nie odpala

this.activatedRoute.params.subscribe((parameter) => {
//tutaj przypisuje
this.typDokumentu = parameter['id'];
}
1

Zrób metodę do pobierania tych dokumentów i daj ją w subscribe. Przy zmianie parametru komponent nie jest tworzony od nowa a więc nie wywołuje się ngOnInit ponownie.

EDIT; metodę już masz, wystarczy ją wywołać w subscribe z nowym parametrem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1