• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak poprawnie odczytać listę obiektów JSON w Angular 6

Object Storage Arubacloud
0 głosów
892 wizyt
pytanie zadane 30 sierpnia 2018 w Inne języki przez multim Obywatel (1,830 p.)

Chcę pobrać listę obiektów JSON i zmapować ją na własny typ w celu prezentacji w tabeli. Dane pobieram z RESTapi z serwera na localhoście, postman i przeglądarka poprawnie je interpretuje, niestety Angular jakby nie widział tych danych (dostaję undefined).
Podstawy http w Angular czerpałem stąd: Angular docs i analogicznie utworzyłem model i serwis.

W celach testowych korzystałem z serwisu jsonplaceholder i tu udaje mi się poprawnie pobrać i wyświetlić dane, jednak problem jest przy pobieraniu danych z localhosta.

Mój plik serwisu:

const httpOptions = {
    headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};

export class OrdersService {
    readonly GET_ORDERS = 'http://localhost:8080/PDS/orders/';
    readonly EXAMPLE_URL = 'https://jsonplaceholder.typicode.com';

    constructor(private http:HttpClient) {
    }
 
    // Uses http.get() to load data from a single API endpoint
    getPosts() : Observable<Post[]> {
        return this.http.get<Post[]>(this.EXAMPLE_URL + '/posts');
    }

    getOrders() : Observable<Order[]> {
        return this.http.get<Order[]>(this.GET_ORDERS, httpOptions);
    }
}

Fragment wyświetlanego komponentu:

orders: Order[];

posts: Post[];

getOrders() {
    this.ordersService.getOrders().subscribe(
      orders => this.orders = orders
    );
}

Oraz model typu Order:

export interface Order {
    id: number;
    userId: number;
    pizzasId: number;
    status: string;
    date: Date;
}

 

2 odpowiedzi

0 głosów
odpowiedź 30 sierpnia 2018 przez plucins Stary wyjadacz (11,110 p.)
a gdzie wołasz tą metodę getOrders() w komponencie ?
komentarz 30 sierpnia 2018 przez multim Obywatel (1,830 p.)
edycja 30 sierpnia 2018 przez multim
ngOnInit() {
    this.getOrders();
}

 

0 głosów
odpowiedź 12 września 2018 przez multim Obywatel (1,830 p.)

Problemem był typ danych w interfejsie Order

zamiast:

date: Date

powinno być:

date: string

a następnie należy sparsować dopiero datę na odpowiedni typ ts.

Podobne pytania

0 głosów
0 odpowiedzi 1,019 wizyt
pytanie zadane 31 stycznia 2018 w JavaScript przez carnage Nowicjusz (120 p.)
0 głosów
1 odpowiedź 223 wizyt
pytanie zadane 29 marca 2020 w JavaScript przez michal_php Stary wyjadacz (13,700 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...