通过对象的ng-repeat循环表现不正常

时间:2016-03-25 06:01:30

标签: angularjs angularjs-ng-repeat ng-repeat

在我的Angularjs ng-repeat中只有一个对象,字段减少实际上我在这个对象中有超过40个。如果我有40个字段,则渲染40个空输出(参见下面的输出)。

{"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

但实际的输出是三次没有价值。

Name: 
Gender: 

Name: 
Gender: 

Name: 
Gender: 

2 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您正在迭代对象而不是数组。因此,ngRepeat循环将运行与对象中的键一样多次。因为,对象中有三个键,循环运行三次。此外,emp(可迭代)是键('名称','性别','国家')而不是完整对象。

更改为:

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

答案 1 :(得分: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>