2016-04-22 34 views
2

請參見下面的代碼:如何獲得固定的JSON API數據的數量angularjs

var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("http://www.w3schools.com/angular/customers.php") 
     .then(function (response) { 
      $scope.names = response.data.records; 
     }); 
}); 

在上面的例子我們寫的代碼用於獲取的所有數據在記錄存儲在但要求前5位數據應存放在名稱

預先感謝

+0

所以將你的API總是返回回完整數據,然後你需要切片數據,並存儲只有第5個項目?或者你正在改變你的API? –

+0

不,我不想更改API。如果可能從json api獲得5個數據 –

+0

你能分享你從API獲得的json格式嗎?它是一個數組還是對象? –

回答

3

在這種情況下,你可以做slice從響應記錄

$scope.names = response.data.records.slice(0,5); 

樣品:

var app = angular.module('myApp', []); 
 
app.controller('customersCtrl', function($scope, $http) { 
 
    $http.get("http://www.w3schools.com/angular/customers.php") 
 
     .then(function (response) { 
 
      $scope.names = response.data.records.slice(0,5); 
 
     }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="customersCtrl"> 
 
    <pre ng-repeat="name in names">{{$index+1}}: {{name|json}}</pre> 
 
</div>

+0

謝謝你這麼多兄弟! –

5

有兩種方法可以做到這一點 -

  1. 使服務器端更改只得到五個記錄(我想你不想使用此)。
  2. 在客戶端可以使用下面的代碼

樣品:

$scope.names=[]; 
$.each(response.data.records.slice(0,5), function(i, data) { 
    $scope.names.push(data); 
}); 
+0

不錯的和很好的答案 –

+0

一個upvote會工作很好:) – urvashi

+0

哦對不起 –

0

使用切片

$scope.names = response.data.records.slice(0,5);