In the internal-transfer-details
page, I have a table with two columns: I have a numerical value and a hyperlink.
If I click on the first link, I want to retrieve in the HTML table, the value 840
.
I get to the internal-transfer-watch
page and I get a lot of rows. I just want to retrieve a row. (the value 840
)
ID is 347075
The JSON file is here.
internal-transfert-details.component.ts (parent)
export class InternalTransfertDetailsComponent implements OnInit, OnDestroy {
private unsubscribe$ = new Subject<void>();
internalTransfertDetails: InternalTransfertDetails[] = [];
constructor(private service: InternalTransfertDetailsService, private router: Router) { }
ngOnInit(): void {
this.getTransfert()
}
ngOnDestroy(): void {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
private getTransfert(): void {
this.service.getTransfert().pipe(
takeUntil(this.unsubscribe$)
).subscribe(res => {
if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
this.internalTransfertDetails = res.TRANS.map(
internalTransfertLine => {
return {
titre: {
label: internalTransfertLine.TITRE.LABEL,
isin: internalTransfertLine.TITRE.ISIN,
svm: internalTransfertLine.TITRE.SVM,
},
solde: internalTransfertLine.SOLDE,
qte_vente: internalTransfertLine.QTE_VENTE,
qte_bloq: internalTransfertLine.QTE_BLOQ,
qte_trf: internalTransfertLine.QTE_TRF
}
}
);
}
});
}
}
internal-transfert-details.component.html
<div class="home-content">
<div class="container" *ngIf="internalTransfertDetails">
<div class="pt-50">
<h1 class="text-center pb-3">Transfert Interne - Details</h1>
<div class="row pt-3 container">
<div class="card" style="width: 20%;">
<div class="card-body">
<table class="table table-striped table-hover">
<thead class="thead-light">
<tr class="text-center">
<th scope="col">Solde</th>
</tr>
</thead>
<tbody>
<tr
*ngFor="let internalTransfertDetail of internalTransfertDetails"
>
<td scope="row" class="text-end">
{{internalTransfertDetail.solde }}
</td>
<td scope="row " class="text-end">
<a
[routerLink]="[ '/transferts/internal-transfert-watch/' + internalTransfertDetail.titre.svm ] "
>
Link
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
internal-transfert-details.response.ts
import { ApiResponse } from "src/shared/types/api.response";
export interface InternalTransfertDetailsResponse extends ApiResponse {
TRANS: {
TITRE: {
LABEL: string,
ISIN: string,
SVM: number,
},
SOLDE: number,
QTE_VENTE: number,
QTE_BLOQ: number,
QTE_TRF: number,
}[];
}
internal-transfert-details.ts
export interface InternalTransfertDetails {
titre: {
label: string;
isin: string;
svm: number;
},
solde: number;
qte_vente: number;
qte_bloq: number;
qte_trf: number;
}
internal-transfert-watch.component.ts (child)
export class InternalTransfertWatchComponent implements OnInit, OnDestroy {
private unsubscribe$ = new Subject<void>();
internalTransfertDetails: InternalTransfertDetails[] = [];
constructor(private service: InternalTransfertDetailsService, private router: Router) { }
ngOnInit(): void {
this.getTransfert()
}
ngOnDestroy(): void {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
private getTransfert(): void {
this.service.getTransfert().pipe(
takeUntil(this.unsubscribe$)
).subscribe(res => {
if (res.RETURNCODE === ApiResponseCodeEnum.Ok) {
this.internalTransfertDetails = res.TRANS.map(
internalTransfertLine => {
return {
titre: {
label: internalTransfertLine.TITRE.LABEL,
isin: internalTransfertLine.TITRE.ISIN,
svm: internalTransfertLine.TITRE.SVM,
},
solde: internalTransfertLine.SOLDE,
qte_vente: internalTransfertLine.QTE_VENTE,
qte_bloq: internalTransfertLine.QTE_BLOQ,
qte_trf: internalTransfertLine.QTE_TRF
}
}
);
}
});
}
}
internal-transfert-watch.component.html
<div class="home-content">
<div class="container">
<div class="pt-50">
<h1 class="text-center pb-3">Transfert Interne - Details</h1>
<div class="row pt-3 container">
<div class="card" style="width: 30%;">
<div class="card-body">
<table class="table table-striped table-hover">
<thead class="thead-light">
<tr class="text-center">
<th scope="col">Solde</th>
</tr>
</thead>
<tbody>
<tr
*ngFor="let internalTransfertDetail of internalTransfertDetails"
>
<td scope="row" class="text-center">
{{internalTransfertDetail.solde }}
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
Thanks you a lot