I have have a service in Angular, which calls data from an API.
(我在Angular中有一个服务,该服务从API调用数据。)
So when I am trying to display the data it is not displaying?(因此,当我尝试显示未显示的数据时?)
Service
(服务)
import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Observable, of, throwError } from 'rxjs';
import { catchError, retry } from 'rxjs/operators';
@Injectable()
export class ApiService {
api: string = 'https://newsapi.org/v2/top-headlines?country=gb&category=entertainment&apiKey=8ee8c21b20d24b37856fc3ab1e22a1e5';
constructor(
private http: HttpClient,
) { }
getAll(): Observable<any> {
return this.http.get(this.api)
.pipe(
catchError(this.handleError)
);
}
private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
console.log(error.error.message)
} else {
console.log(error.status)
}
return throwError(
console.log('Something is wrong!'));
};
}
Component.ts
(Component.ts)
import { Component, OnInit } from '@angular/core';
import { ApiService } from './api.service';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
public data = [];
public noData: any;
public results = [];
constructor(
private api: ApiService
){ }
getAll() {
this.api.getAll().subscribe((results) => {
this.data = results.results;
console.log('JSON Response = ', JSON.stringify(results));
})
}
ngOnInit() {
}
}
JSON response structure
(JSON响应结构)
{
"status":"ok",
"totalResults":70,
"articles":[
{
"source":{
"id":null,
"name":"Thesun.co.uk"
},
"author":"Mary Gallagher",
"title":"Holly Willoughby breaks down in tears on This Morning as she meets disabled boy who speaks against all odds - The Sun",
"description":"",
etc etc
HTML
(的HTML)
<div *ngFor="let news of data">
<h3>{{news.json}}</h3>
</div>
Where Am I going wrong?
(我哪里错了?)
ask by Sole translate from so
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…