您好任何人都可以帮助我获得以下问题的解决方案
目前我从AngularJS获得JSON响应
$scope.bepValues = $scope.aftCnv.Events.Event;
当我在事件标记中只有1个事件时,我在使用Ng-Repeat方面遇到了问题。但是当我在Events数组中获得超过1个事件时,同样有效。
<tr ng-repeat="list in bepValues">
<td class="features" >{{list.Body.WorkOrder.OrderStatus}}</td>
使用1Event的控制台日志值
Object {Header: Object, Body: Object}
控制台日志值超过1个EEPEvent
[Object, Object]
答案 0 :(得分: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>
修改强>
如果你有多个这样的情况,那么如果只有一个对象,则创建一个过滤器来返回数组:
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 只会循环一次。