2016-12-24 41 views
3

enter image description here var responsePromisecom = $ http.get(「restapi calling」); (功能(數據){ console.log(data); $ scope.items = data.platform.record; }); responsePromisecom.error(function(data,status,headers,config){
alert(「ajax failed」); }); };ng-repeat問題

我正在使用$http.get()進行REST API調用。我想在我的頁面中使用ng-repeat顯示回覆數據。當數據是一個數組(意味着如果響應數據包含多個對象),它可以正常工作。但是,當響應數據只包含一條記錄時,ng-repeat無法正常工作。我不想用$watch。有沒有辦法做到這一點?如果這些項目返回1條記錄,則ng-repeat會重複多次,而沒有任何數據。如果物品退回2記錄ng-repeat工作正常。

<div ng-repeat="item in items"> 
    {{item.id}} 
</div> 
+1

您需要共享更多的代碼的 – tanmay

+0

請提供您的數據和assinged代碼,如果可能提供jsfiddle或plncr –

回答

1

檢查數組的長度,並做到這一點,

<div ng-repeat="item in items ng-if="items.length > 1"> 
    {{item.id}} 
</div> 
<div ng-repeat="item in items[0] ng-if="items.length == 1"> 
{{item.id}} 
</div> 

編輯

var responsePromisecom = $http.get("restapi calling"); 
    responsePromisecom.success(function(data) { 
     console.log(data); 
     if(data.platform.record.length == 1){ 
      $scope.items.push(data.platform.record); 
     } 
     else 
     { 
      $scope.items = data.platform.record; 
     }   
    }); 
    responsePromisecom.error(function(data, status, headers, config) { 
     alert("ajax failed"); 
    }); 
}; 
+0

我的uib手風琴在筆記本電腦中工作良好的鏈接。但是當我訪問手機頁面手風琴不折疊 – dockerrrr

+0

可能是CSS可能是問題 – Sajeetharan

+0

沒有即時通訊不使用任何CSS手風琴 – dockerrrr

0

ng-repeat是不是根本原因,我想,當你調用REST API,當結果只是一個項目時,它會返回一個不是數組的對象。所以你需要編輯代碼返回一個項目時返回數組。

+0

如何實現它 – dockerrrr

+0

$ scope.items = []; angular.forEach($ data.platform.record,function(element){ $ scope.items.push(element); }); –

+0

可以使用說明更多forEach功能,您使用。 – dockerrrr

0

ng-repeat在這裏工作在一個數組中的元素。看看這裏

plunker

0

你剛纔檢查響應對象或數組這可能會幫助你

if(data.platform.record[0] == undefined){ 
    $scope.items=[data.platform.record]; 
}else{ 
    $scope.items=data.platform.record; 
}