2016-03-22 10 views
15

Uczę się języka Angular 2 i pracuję z tablicami statycznymi, a teraz próbuję dowiedzieć się więcej o czytaniu danych zdalnych.Angular 2 - iteracja na tablicy json wewnątrz obiektu json

My app.component.ts:

import {Component} from 'angular2/core'; 
import {Http, Response} from 'angular2/http'; 
import {Observable} from 'rxjs/Rx'; 

@Component({ 
    selector: 'my-app', 
    template:` 
    <h1>Angular2 HTTP Demo App</h1> 
    <h2>Foods</h2> 
    <ul> 
    <li *ngFor="#doc of docs">{{doc.id}}</li> 
    </ul> 
    ` 
}) 
export class AppComponent { 

    public foods; 
    public books; 
    public movies; 

    constructor(private http: Http) { } 

    ngOnInit() { 
    this.getFoods(); 
    } 

    getFoods() { 
    this.http.get('http://my API URL') 
     .map((res:Response) => res.json()) 
     .subscribe(
     data => { this.foods = data}, 
     err => console.error(err), 
     () => console.log('done') 
    ); 
    } 

} 

ten sposób mój API url pokazują wyniki: obiekt

API URL RESuLT

  1. JSON nazwie "Docs".
  2. Tablica json elementów o id i innych ciągach.

Moim celem jest, aby każdy element pętli tablicy i pokazują dane wewnątrz niego (id, placeID, etc ..)

To moja aplikacja, która sprawia, że ​​nie iteracji na wszystkich:

No iteration

Jak mogę wykonać pętlę z *ngFor każdym z elementów tablicy json?

+0

co robi 'docs()' zrobić? –

+0

Nic, to tylko sztuczka, którą znalazłem i starałem się jej użyć. – TheUnreal

Odpowiedz

11

Plunker

Do pętli na tablicy:

<li *ngFor="let doc of docs">{{doc.id}}</li> 

Do pętli nad właściwości obiektu:

Trzeba będzie generować Array OB Właściwości jekt

generateArray(obj){ 
    return Object.keys(obj).map((key)=>{ return obj[key]}); 
} 

i używać go jak

<li *ngFor="let doc of docs"> 
    <span *ngFor="let v of generateArray(doc)"> {{v}} </span> 
</li> 

Albo można użyć jako Pipe.

+0

To, co próbowałem zrobić (discared the() z mojego kodu), ale to nie działa (bez iteracji w ogóle). – TheUnreal

+0

czy możesz zrobić demo na żywo? Ponieważ jeśli dane są poprawne, iteracje muszą się zdarzyć. musi być coś złego w tym, jak zdobywasz dane dla "dokumentów". –

+0

Jakie pliki muszę pobrać, aby aplikacja działała na moim serwerze? Próbowałem przesłać cały katalog i filese i jest to około 50-100 MB http://i.imgur.com/sU9INQ5.png * Zaktualizowałem swój post z uruchomionym zrzutem ekranu aplikacji * – TheUnreal