J'ai besoin de récupérer les valeurs qui sont à l'intérieur des villes de ce JSON, mais je ne peux pas :
{
"id":0,
"department":"Amazonas",
"cities":["Leticia","Puerto Bayarta",]
},
{
"id":1,
"department":"Antioquia",
"cities":["Medellin","Bello",]
}
Ce sont les composants et les services que j'ai réalisés :
villes.service.ts
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class CitiesService {
constructor(private http: HttpClient) {}
getJSON(url: string) {
return this.http.get(url);
}
}
Le composant a une interface :
nueva-organizacion.component.ts
import { Component, OnInit } from '@angular/core';
import { CitiesService } from 'src/app/services/cities.service';
interface City{
department: string;
cities: string[];
}
@Component({
selector: 'app-nueva-organizacion',
templateUrl: './nueva-organizacion.component.html',
styleUrls: ['./nueva-organizacion.component.css'],
})
export class NuevaOrganizacionComponent implements OnInit {
public cities: City[] = [];
constructor(
public cities: CitiesService,
) {}
ngOnInit(): void {
this.cities
.getJSON(
'https://raw.githubusercontent.com/marcovega/colombia-json/master/colombia.min.json'
)
.subscribe((res: any) => {
this.cities = res;
});
}
Et enfin, je voudrais afficher les villes dans un sélecteur :
nueva-organizacion.component.html
<div class="form-input">
<select id="city" class="custom-select">
<option selected>Choose one...</option>
<option *ngFor="let city of cities">
{{ city.cities }}
</option>
</select>
</div>
Je voudrais obtenir quelque chose comme ceci dans le sélecteur :
Choose one...
Leticia
Puerto Bayarta
Medellin
Bello
Mais je comprends ça :
Choose one...
Leticia, Puerto Bayarta
Medellin, Bello
Peut-être que la bonne méthode consiste à utiliser l'index {{ city.cities[] }} mais je ne sais pas comment.