2016-07-18 7 views
0

ng-repeat内で非同期呼び出しを行うng-initを使用できますか?例えば非同期操作でのng-initの使用

は、以下の点を考慮:

<div ng-repeat="order in orders"> 
    <md-list> 
     <md-list-item> 
      {{order.id}} 
     </md-list-item> 

     <md-list-item ng-init="detail = getOrderDetail(order.id)"> 
      {{detail.itemName}} 
     </md-list-item> 
    </md-list 
</div> 

私はその上に行くと、HTTP経由でいくつかの余分なデータをフェッチしますが繰り返され、各項目のための関数を呼び出すしたいと思います。

だから私のgetOrderDetailに、私は何かこの種のものがあります。私の第二でdetail.itemNamemd-list-itemは何にも解決しませんが、私はネットワーク要求が行わ見ることができるように、

function getOrderDetail(id) { 
    return myService.getOrderDetails(id).then(function(orderDetail){ 
     return orderDetail; 
    }); 
} 

私にとってこのdoesntの仕事を関数呼び出しでブレークポイントを追加すると、itemNameプロパティが返された注文の詳細が表示されます。

ng-initを使用すると、非同期操作の再評価ができないという制限がありますか?

  • これは、あなたはそれが働いて作ることができる方法ではありません

    おかげ

    あり
  • +0

    ここでng-initを使用することは意味がありません。 –

    答えて

    0

    私は間違って別の間違ったことは、あなたがこのような場合のためにng-initを使用すべきではないです

    1. 実装物事のカップルを見ることができますあなたがそれを考えているように、約束から返されたデータは直接変数の中に入れられます。

    私は、その特定の順序のみ

    angular.forEach(orders, function(order){ 
        getOrderDetail(id).then(function(response){ 
         order.detail = response; 
        }) 
    }); 
    

    HTML

    から、後で詳細をつかむことができるようにデータ&は、その要素の orderオブジェクトにデータを置く得るとき、私はそれらのコールを作ると思います
    <div ng-repeat="order in orders"> 
        <md-list> 
         <md-list-item> 
          {{order.id}} 
         </md-list-item> 
         <md-list-item> 
          {{order.detail.itemName}} 
         </md-list-item> 
        </md-list> 
    </div> 
    
    +0

    Downvoterなぜあなたはdownvoteコメントコメントを書いて説明できますか?あなたが何か間違っていると感じたらコメントをつけてください、私はそれを感謝します。また、同じことがさらに改善するのに役立ちます.. –

    +0

    @KevinBは頭の上に感謝しますが、それはdownvoteの背後にある理由ですか? –

    +0

    ありがとうございました - 私はこのようなことをやってしまったのですが、これはng-initの使用が可能であったか、あなたが答えているかどうかという疑問でした。 – mindparse

    関連する問題