Javascript 从服务器端NodeJ到angularjs获取有限的json响应

Javascript 从服务器端NodeJ到angularjs获取有限的json响应,javascript,arrays,angularjs,json,node.js,Javascript,Arrays,Angularjs,Json,Node.js,我从node.js服务器得到这个json响应 我使用angularjs ng repeat函数在我的前端显示它。 当响应包含阵列中超过100000个对象时,浏览器将挂起 所以我想先得到数组中的三个对象 但我再次将此响应发送回服务器端 所以我想发送所有数据 来自服务器端的我的json响应: [ { field5: 'Chennai', field6: 'Asia', field7: '600091', field8: '10-10-1996'}, { field5: 'Ta

我从node.js服务器得到这个json响应

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

所以我想先得到数组中的三个对象

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

所以我想发送所有数据

来自服务器端的我的json响应:

[ { 
  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'} ]
My controller.js:

正在将服务器端数据获取到angularjs:

$http({
   method: 'GET',
   url: '/api/getnewgroup'
}).then(function (response) {
   $scope.excels = response.data;
}, function (response) {
   window.location.href = '/';
});
我上次从客户端向服务器发送数据的api:

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

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

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 = '/';
});


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

您的服务器已经有了数据(它正在发送到前端)。为什么需要从前端发回?您可以在后端本身访问相同的数据。我正在项目中更改某种形式的内容,并将某种形式的已编辑对象发送回去。好的。在这种情况下,您需要使用分页。用户将只能编辑您显示的数据。因此,如果显示3行,则将更新后的3行发回,并更新后端中的完整数据。这是否可以使用splice方法实现?我正在更改某些形式的内容,这意味着我只是从客户端在json中添加一个对象,然后发送该对象。Limit只会在UI中隐藏json对象,但它们几乎从服务器端获取所有数据。@MohamedSameer所以请更清楚地了解您想要做什么,无需否决我的答案。您希望如何在不从后端获取数据的情况下将所有数据放在前端?您的问题不是javascript或角度相关的问题,而是后端问题。@MohamedSameer用另一个建议编辑了它。@MohamedSameer如果我的建议有效,请不要忘记将其标记为已接受的答案,以帮助将来有同样问题的用户:)
$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);
    });
}