Συνδέστε την τιμή json του Angular με τη διαδρομή img
Πρέπει να εμφανίσω δεδομένα που προέρχονται από ένα API που λειτουργεί καλά, χρειάζομαι να εμφανίσω κάθε χώρα με τη αντίστοιχη σημαία της αλλά δεν καταλαβαίνω πώς να συσχετίσω την τιμή ενός JSON με τη διαδρομή μιας εικόνας.
παράδειγμα : για το
ετικέτα: Καμπότζη δίγραμμα: KH
εμφάνιση: src/assets/flags/KH.jpg
libelle: Γαλλία bigramme: FR
εμφάνιση: src/assets/flags/FR.jpg
Έχω προσπαθήσει να είμαι όσο το δυνατόν πιο σαφής.
ευχαριστώ.
json
"drapeaux": [
{
"id": 1,
"mnemo": "KHM",
"libelle": "Cambodge",
"bigramme": "KH"
},
{
"id": 2,
"mnemo": "KHM",
"libelle": "France",
"bigramme": "FR"
}
]
}
υπηρεσία
getAll(): Observable<Ipost[]> {
return this.http.get<Ipost[]>(this.api);
}
components.ts
getAllNations() {
let resp = this.homeService.getAll();
resp.subscribe(result => {
this.postArray = result;
});
}
html
<div class="col-12">
<mat-card>
<div class="row">
<div class="col-1" *ngFor="let post of postArray">
{{post.libelle}}
<img [src]="post.bigramme.jpg" alt="flag">
</div>
</div>
</mat-card>
</div>
Απάντηση #1
Έχετε δύο επιλογές:
Επιλογή 1: Στην υπηρεσία σας:
getAll(): Observable<Ipost[]> {
return this.http.get<Ipost[]>(this.api).pipe(
map(p => ({
...p,
bigramme: `src/assets/flags/${p.bigramme}.jpg`
}))
)
}
Και μετά το html του Component σας:
<div class="col-12">
<mat-card>
<div class="row">
<div class="col-1" *ngFor="let post of postArray">
{{post.libelle}}
<img [src]="post.bigramme" alt="flag">
</div>
</div>
</mat-card>
</div>
Επιλογή 2: Ή μπορείτε να αλλάξετε μόνο το html του Συστατικού σας:
<div class="col-12">
<mat-card>
<div class="row">
<div class="col-1" *ngFor="let post of postArray">
{{post.libelle}}
<img src="src/assets/flags/{{ post.bigramme }}.jpg" alt="flag">
</div>
</div>
</mat-card>
</div>
