これはAngular2を使用した私の最初のプロジェクトです。角度のあるフロンではファイルルートを使用しません。laravel 5.4のデータを取得するAPIを構築します。* ngForフェッチjsonデータ配列オブジェクトを1ページに取り込みます
getFoodsByCat(id :number): Observable<any> {
return this.http.get('http://livrer/api/menu/' +id)
.map(
(response: Response) => { return response.json().foods;
}
);}
は私のコンポーネントでは、私はそのように、このサービスを使用します。
{"foods":[{"id":10,"designation":"pannin fromage","description":"
Pannini fromage cornichon<\/p>","prix":25,"created_at":"2017-03-11 17:59:34","updated_at":"2017-03-11 ...}]}
:
import {Response} from '@angular/http';
import { Food } from "./food.interface";
import { FoodService } from "./food.service";
export class FoodsComponent implements OnInit {
@Input() food : Food ;
foods: Food[];
constructor(private foodService: FoodService) { }
ngOnInit() {
onGetFoodsByCategorie(id){
this.foodService.getFoodsByCat(id)
.subscribe(
(foods: Food[])=> this.foods = foods,
(error : Response)=> console.log(error)
);
} }
このサービス機能はそのようなJSONレスポンスを取得します私はオンロードブークレを使用したテンプレートに
がデータに= 1
<ul class="resp-tabs-list">
<li class="active" (load)="onGetFoodsByCategorie(1)">Panninis</li>
<li (click)="onGetFoodsByCategorie(2)">Somthing</li>
<li (click)="onGetFoodsByCategorie(3)">Sandwichs</li>
<li (click)="onGetFoodsByCategorie(4)">Pizzas</li>
</ul>
<li *ngFor= "let food of foods" [food]="foods">
//some style and data
</li>
最初の要素IDを取得開始し、私はこのエラーを取得:
Error: Template parse errors:
Can't bind to 'food' since it isn't a known property of 'li'. ("
<li *ngFor= "let food of foods" [ERROR ->][food]="foods">
<div class="item">
<div class="thumbnail-menu-modern">
"): [email protected]:32
を使うのか?それはエラーなしでデータを返しますか? console.log()で試してみましたか? –
エラーは非常に明確です。リスト項目の[food] = "foods"を削除します。あなたはngForを使って食品のために繰り返し、リスト項目に値を表示することができます。 – digit
はい私のapiは例の成功を呼び出すongetfoodcat(1)私はrget respnse json:{"食べ物":[{"id":10、 "指定": "pannin fromage"、 "description": " Pannini fromage cornichon <\/p> "、" prix ":25、" created_at ":" 2017-03-11 17:59:34 "、" updated_at ":" 2017-03-11 ....}]} – MedKostali