2016-10-12 10 views
0

HIでNG-繰り返し誰もが下記の問題1 JSONObjectとJSONArray

現在、私はAngularJS

$scope.bepValues = $scope.aftCnv.Events.Event; 

からJSONレスポンスを取得していますそして、私は問題に直面していますためのソリューションを得ることに私を助けてくださいイベントタグで1つのイベントしか持たないときはNg-Repeatを使用します。しかし、私はイベント配列で1つ以上のイベントを取得しているときも同じことが動作しています。

<tr ng-repeat="list in bepValues"> 
<td class="features" >{{list.Body.WorkOrder.OrderStatus}}</td> 

コンソールログバリュー1Event

Object {Header: Object, Body: Object} 

Image with only 1 Event

コンソールログ値を持つ以上1 EEPEventと

[Object, Object] 

Image with more than 1 Event

答えて

1

ng-ifを使用して配列かどうかを確認できます。配列の場合は、ng-repeatを使用します。それ以外の場合は、単一のtrタグを使用して値を表示します。

<tr ng-repeat="list in bepValues"> 
    <td class="features">{{list.Body.WorkOrder.OrderStatus}}</td> 
</tr> 
<tr ng-if="!bepValues.length"> 
    <td>{{bepValues.Body.WorkOrder.OrderStatus}}</td> 
</tr> 

EDIT:あなたは、複数のこのようなケースを持っている場合は

はその後、1つのオブジェクトのみが存在する場合は、配列を返すようにフィルタを作成します。

MyApp.filter('formatArray', [function(){ 
    return function(array){ 
     if(angular.isUndefined(array.length)){ // Check for object type 
      array = [array]; // Convert it into array of single object 
     } 
     return array; 
    } 
}]); 

はにformatArrayフィルタを追加します。あなたのテンプレート:

<tr ng-repeat="list in bepValues | formatArray"> 
    <td class="features">{{list.Body.WorkOrder.OrderStatus}}</td> 
</tr> 

オブジェクトタイプの場合、ng-repeatは1回のみループします。

+0

このように私は約20個の式を表示するので、ng-ifを20個の式すべてに使用するのではなく、簡単に扱うことができます。 – Batman

関連する問題