从服务器端nodejs获得有限的json响应到angularjs

时间:2018-01-11 10:21:07

标签: javascript arrays angularjs json node.js

我从node.js服务器获得了这个json响应。

我使用angularjs ng-repeat功能在我的前端显示。 当响应在阵列中包含超过100000个对象时,浏览器将挂起

所以我想在数组响应

中获得第一个三个对象

但我再次将此响应发送回服务器端,

所以我想发送所有数据。

我在服务器端的json响应:

smtplib.SMTP('smtp-mail.outlook.com')

我的controller.js:

将服务器端数据提供给angularjs:

[ { 
  field5: 'Chennai',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996'},
{ 
  field5: 'Tamilnadu',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996' },
{ 
  field5: 'Tuticorin',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996' },
{ 
  field5: 'Japan',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996'},
{ 
  field5: 'China',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996' },
{ 
  field5: 'Canada',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996' },
{ 
  field5: 'Canada',
  field6: 'Asia',
  field7: '600091',
  field8: '10-10-1996'} ]

我的最后一个api从客户端向服务器发送数据:

$http({
   method: 'GET',
   url: '/api/getnewgroup'
}).then(function (response) {
   $scope.excels = response.data;
}, function (response) {
   window.location.href = '/';
});

1 个答案:

答案 0 :(得分:1)

在ng-repeat中,您可以使用“limitTo”过滤器,如下所示:

ng-repeat="excel in excels | limitTo:3"

这只会显示数组的前3个条目。

如果您想为显示的项目设置另一个数组,可以尝试:

$http({
    method: 'GET',
    url: '/api/getnewgroup'
}).then(function (response) {
    $scope.excels = response.data.slice(0, 3);
    $scope.remainingExcels = response.data.slice(3);
}, function (response) {
    window.location.href = '/';
});

$scope.uploadLast = function () {
    var data = {
        excels: $scope.excels.concat($scope.remainingExcels),
    };
    $http.post('/api/uploadlast', data).then(function (response) {
    }).catch(function (response) {
        alert(response.data);
        console.log(response);
    });
}

但这是一件非常“丑陋”的事情。