Ошибка Angular 6: данные, которые я получаю от API в формате строки, как разобрать? - PullRequest
0 голосов
/ 24 сентября 2018

Привет хочу показать данные из моего API в моем интерфейсе (Angular 6) Я использую метод HttpClient от Angular 6 Я новичок в угловых данных, которые я получаю из API в формате строки, мне нужно проанализироватьниже приводится ответное изображение

the data which I am getting from api is in the string format, I need to parse, below is the response image

это модель.ts

export interface Events {

IE_Incident_Start_Time: string;
IE_Start_time: string;
Title: string;
IE_Start_By: string;
Domain: string;
Impact: string;
IE_BU_Description: string;
}

это компонент

enter code here
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Incident } from '../../shared/incidents.model';
import { DataStorageService } from '../../shared/data-storage.service';

@Component({
selector: 'app-active-incident',
templateUrl: './active-incident.component.html',
styleUrls: ['./active-incident.component.css']
})
export class ActiveIncidentComponent implements OnInit {

incidents: Events[];

constructor(private router: Router, private dataStorageService: 
DataStorageService) { }

ngOnInit() {
this.dataStorageService.getIncidents()
.subscribe(
(data: Events[]) => this.incidents = data,
(err: any) => console.log(err),
() => console.log('All done getting incidents')
);
}

это сервис

enter code here
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

import { Observable } from 'rxjs/Observable';
import { Incident } from './incidents.model';

@Injectable()
export class DataStorageService {
constructor(private http: HttpClient) {}

getIncidents(): Observable<Events[]> {
console.log('Getting all incidents from server');
return this.http.get<Events[]> 
('api/url');
}
}

просмотр html

enter code here
<div class="card" *ngFor="let incident of incidents.Events">
<div class="card-header">
<span class="badge badge-danger"></span>{{incident.Title}}
<span class="badge badge-danger"></span>{{incident.Incident_Status}}
</div>
</div>

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вы также можете использовать способ

return this.dataStorageService.getIncidents()
      .pipe(
        map(jsonObj => Object.assign(new Events(), jsonObj),
        catchError(error => console.log('Error!'))
      );
0 голосов
/ 24 сентября 2018

Да, вы можете сделать это таким образом.

    this.dataStorageService.getIncidents().subscribe((data: Events[]) =>{
    data.foreach(()=>{
 this.incidents.push(JSON.parse(data));
       })

    },
    (err: any) => console.log(err),
    () => console.log('All done getting incidents')
    ); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...