Во-первых, я бы посоветовал вам создать интерфейсы для ваших моделей данных. Они не должны совпадать с тем, что возвращает ваш API, но в вашем случае это имеет смысл, поскольку ответ API имеет правильное имя.
export interface Stock {
name: string;
exchange: string;
}
Создайте службу, которая будет выполнять вызовы API. Служба не вызовет сам запрос http, она просто вернет наблюдаемый. Служба знает , как она собирается совершить вызов, а компонент знает , когда должен быть выполнен вызов.
stock.service.ts
fetchData(): Observable<Stock[]> {
return this.http
.get('https://financialmodelingprep.com/api/v3/company/stock/list')
.pipe(
map((response: any) => response.symbolsList)
);
}
Внедрить сервис в ваш компонент и вызывать вызов, когда вы захотите. Установите свойство publi c, чтобы ваш HTML мог его «увидеть».
component.ts
export class MyComponent {
constructor(private stockService: StockService) { }
stocks: Stock[];
onFetchData() {
this.stockService.fetchData().subscribe((stocks: Stock[]) => {
this.stocks = stocks;
});
}
}
Затем привяжите к данным в вашем HTML:
компонент. html
<div *ngFor="let stock of stocks">
{{stock.name}}: {{stock.exchange}}
</div>
DEMO: https://stackblitz.com/edit/angular-waymkr