是否可以让ng-repeat将数据附加到现有内容而不是替换?

时间:2015-08-19 12:36:40

标签: angularjs

假设我有以下html:

<li ng-repeat="item in items></li>
每次用户滚动到列表底部时,我都会加载10个以上的项目,并且我希望它们添加到列表的底部,而不是仅仅替换之前的内容。

有没有办法用AngularJS做到这一点?

3 个答案:

答案 0 :(得分:0)

你可以使用javascript的splice()函数:

var firstArr= ["One", "Two", "Tree", "Four"];
var secondArr= ["Five","Six"];
firstArr.splice(firstArr.length+1 , 0, secondArr);

结果:

One,Two,Tree,Four,Five,Six

See More Info on splice()

答案 1 :(得分:0)

我猜这样的事情就是你搜索的内容

function ItemsController($scope,Items){

  $scope.onScroll = function(amount){
    Items.getMore(amount).then(function(response){
      $scope.items.splice($scope.items.length+1 , 0, response.data);
    });
  }
}

答案 2 :(得分:0)

我最终使用的解决方案是使用本机javascript concat()函数,该函数合并两个数组。我合并了我的范围变量中已有的项目和返回的ajax请求的新项目,这些项目具有附加数据所需的效果,而不是替换它。

所以我的ajax请求看起来像这样:

ajaxCallFetchItems().then(function(items) {
  $scope.items = $scope.items.concat(items);
});