2016-12-24 9 views
3

enter image description here var responsePromisecom = $ http.get( "restapi calling"); responsePromisecom.success(function(data){ 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を使用して応答データを表示したいと思います。データが配列の場合(応答データに複数のオブジェクトが含まれている場合を意味します)、正常に動作します。ただし、応答データにレコードが1つしかない場合は、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> 

EDIT

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-accordionはノートパソコンで正常に動作します。しかし、私が電話でページにアクセスすると、アコーディオンは崩壊しません – dockerrrr

+0

おそらくCSSが問題になる可能性があります – Sajeetharan

+0

アコーディオン用のCSSを使用していません – dockerrrr

0

ng-repeatは、私はあなたが残りのAPIを呼び出すときことを推測、根本的な原因ではありません結果が単なる項目の場合、配列ではないオブジェクトを返します。したがって、アイテムを返すときに配列を返すようにコードを編集する必要があります。

+0

それを達成する方法 – dockerrrr

+0

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

+0

は、あなたが使ったそれぞれの機能についてもっと説明することができます。 – dockerrrr

0

ng-repeatは、配列内の1つの要素でここで動作しています。あなただけの応答をチェックする必要があり、ここで

plunker

0

をチェックこれはあなたの

if(data.platform.record[0] == undefined){ 
    $scope.items=[data.platform.record]; 
}else{ 
    $scope.items=data.platform.record; 
} 
関連する問題