2016-03-25 16 views
0

私のAngularjs ng-repeatには1つのオブジェクトしかありません。フィールドは実際には40以上あります。私は40のフィールドを持っている場合、40の空の出力がレンダリングされます(下のoutoutを参照)。ng-repeatループスルーオブジェクトが正常に動作しません

{"Name": "Raj", "Gender":"M", "Country": "India"} (ONLY ONE OBJECT) 

角度ビュー

<table ng-repeat="emp in model.Employee"> 
<tr> 
<td><strong>Name:</strong></td> 
<td>{{emp.Name}}</td> 
</tr> 
<tr> 
<td><strong>Gender:</strong></td> 
<td>{{emp.Gender}}</td> 
</tr> 
</table> 

除外出力は

Name: Raj 
Gender: M 

である。しかし、実際のアウトプットは、値なしで3時間をレンダリングしています。

Name: 
Gender: 

Name: 
Gender: 

Name: 
Gender: 
+0

テーブルの上にまたなぜ 'NG-repeat'?tr''にする必要があります。、model.Employeeは –

+0

何ですか? –

答えて

2

これは、配列ではなくオブジェクトを反復処理しているために発生しています。したがって、ngRepeatループは、オブジェクトにキーがある回数だけ実行されます。オブジェクトには3つのキーがあるので、ループは3回実行されています。また、emp(iterable)は完全オブジェクトではなくキー( 'Name'、 'Gender'、 'C​​ountry')です。あなたは、この目的のために(キー、値)を使用することができ

[{"Name": "Raj", "Gender":"M", "Country": "India"}] 
+0

あなたが正しいです、私は正しい結果を得ているクロムコンソールを実行するとき。これを配列値に変換する方法は他のソースから来ていますか? –

+0

空の配列を宣言し、その中にオブジェクトをプッシュしますか? –

0

:へ

変更。

var app = angular.module("app",[]) 
 
app.controller('ctrl',['$scope', function($scope){ 
 
     $scope.data ={"Name": "Raj", "Gender":"M", "Country": "India"}; 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="ctrl"> 
 
<div class="item item-checkbox"> 
 
     <table > 
 
<tr ng-repeat="(key,value) in data" ng-if="key != 'Country'"> 
 
    <td>{{key}}</td> 
 
<td>{{value}}</td> 
 
</tr> 
 
</table> 
 
</div>

関連する問題