私はAngular 2を学んでいて、静的配列を扱ってきました。そして今、リモートデータの読み取りについてもっと学ぼうとしています。
私の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')
);
}
}
これは私のAPI URLが結果を表示する方法です:
私の目標は、各配列項目をループし、その中のデータ(id、placeIDなど)を表示することです
これは私のアプリであり、まったく繰り返しを行いません:
*ngFor
の各json配列項目でループするにはどうすればよいですか?
配列をループするには:
<li *ngFor="let doc of docs">{{doc.id}}</li>
オブジェクトのプロパティをループするには:
オブジェクトプロパティのArray
を生成する必要があります
generateArray(obj){
return Object.keys(obj).map((key)=>{ return obj[key]});
}
そしてそれを次のように使用します
<li *ngFor="let doc of docs">
<span *ngFor="let v of generateArray(doc)"> {{v}} </span>
</li>
または、 Pipe。 として使用できます