2016-12-19 11 views
1

私はJSONオブジェクトの配列を持っており、各JSONオブジェクトのAPIヒット結果を各JSONオブジェクトの特定の要素に追加する必要があります。最終結果はHTMLファイルに表示されるはずですか? しかし、HTMLページは、APIから取得したデータの前にレンダリングされていますか?APIへの非同期呼び出しを処理する方法は?

問題は、このようなものです:

<tr *ngFor="let order of Orders"> 
    <td><img src="images/honey.jpg" style="width:50px;"/> 
     <span style="margin-left:10px;">{{order.productName}} <strong>[ package:</strong> {{order.packageName}}<strong>]</strong></span></td> 
    <td><input type="number" class="form-control" step="1" style="width:80px;" [value]="order.quantity" /></td> 
    <td><span>NPR Rs.{{order.Rate|number}}</span></td> 
    <td><strong>{{order.totalPrice}}</strong></td> 
    <td> 
     <a href="#" style="color:#F00"><i class="fa fa-trash" (click)="removeItem(order)"></i> Remove</a> 
    </td> 
</tr> 

のみtotalPriceは、API側からcalcuatingされ、他のすべての内容は、受注変数で、すでにあります。 TSファイルで

calculatePrice(){ 
    let i; 
    for(i =0;i<this.Orders.length; i++){ 
     this.dataService.post("order/prices",this.Orders[i]) 
      .subscribe(res=>{ 
       this.Orders[i]['totalPrice'] = res.totalPrice; 
      }) 
    } 
} 

答えて

0
あなたは data値を得たか
あなたがデータの前にコンポーネントへのルーティングを防ぐためにガードを使用する前にレンダリングを防ぐために、コンポーネント内の要素に *ngIf="data"を使用することができます

サーバーからのデータが利用可能になるまで、あなたはまた、全体Angular2アプリケーションの初期化をブロックすることができますhttps://angular.io/docs/ts/latest/guide/router.html#!#guards

可能ですHow to pass parameters rendered from backend to angular2 bootstrap method

関連する問題