2016-10-22 21 views
0

任何人都可以通過以下查詢幫助我嗎?ng-repeat將數據作爲對象和數組處理

有時我會將數據作爲JSONObject獲取,有時我會在ng-repeat期間以JSONArray的形式獲取數據,它只能與JSONArray一起使用,但不能與JSONObject的情況一起使用。

這裏的示例中,這將顯示_serviceID的價值,只有當服務來作爲一個數組,但如果服務部分來作爲對象

<td class="features"> 
<span ng-repeat="indi in ServiceChanges.ServiceInstalls.Service">{{indi._serviceID}}<br></span> 
</td> 

注意這是行不通的:我不想使用ng-if檢查長度,因爲它會影響我的DOM在其他DIV中的位置所以除了這種方法之外,還有其他解決方案,比如通過添加虛擬值將對象轉換爲數組?

回答

1

您可以將返回響應轉換爲控制器中的數組。

.controller(function ($scope) { 
    // code here 

    var serviceArray = []; 
    var response = angular.copy($scope.ServicesChanges.ServiceInstalls.Service); 

    if (angular.isObject(response)) { 
     serviceArray.push(response); 
     $scope.serviceArray = serviceArray; 
    } else if (angular.isArray(response)) { 
     $scope.serviceArray = response; 
    } else { 
     $scope.serviceArray = serviceArray; 
    } 

    // code here 
}); 

<td class="features"> 
    <span ng-repeat="indi in serviceArray">{{indi._serviceID}}<br></span> 
</td> 
+0

它不工作可以幫助我 – Batman

+0

@Batman哪部分不工作?在實現上面的代碼之後,你得到了什麼輸出爲'$ scope.serviceArray'? – whyyie

+0

該循環會去其他條件,當我檢查控制檯它顯示undefined – Batman