无论如何`angular.copy(...,...)`而不替换数据?

时间:2017-03-27 09:26:42

标签: javascript angularjs

我有一个角度工厂,其功能可以通过API从列表中加载一系列项目。所以,如果我想加载前10个,我会说getRange(0, 10)之类的东西。一旦JSON从API返回,我使用angular.copy将项目复制到本地模型...但是如何加载下一个10并将列表项复制过来,而不删除旧项目。显然,我无法继续使用angular.copy,因为它会删除旧项目,然后复制新项目。

任何指导?

1 个答案:

答案 0 :(得分:0)

你可以这样想:

var app = angular.module('plunker', []);

app.controller('demoController', function($scope) {
  $scope.arr = []; // data from factory.
  for (var i = 0; i < 100; i++) { // for demo filling it up
    $scope.arr.push({ item: i }); // just like this
  }
  $scope.newArr = []; // the new item array; 
  $scope.len = $scope.newArr.length || 10;
  $scope.getItems = getItems;

  function getItems() {
    for (var i = $scope.len - 10; i < $scope.len; i++) {
      $scope.newArr.push(angular.copy($scope.arr[i]))
    }
    $scope.len += 10;
  }

});

Take a look at the plnkr here.