AngularJS ng-repeat with pagination

时间:2017-04-25 10:36:40

标签: angularjs angularjs-ng-repeat

我正在使用angularJS来渲染带有分页的表格, 下面是我在互联网上找到的分页小提琴:

http://jsfiddle.net/SAWsA/9086/

现在我已按照以下说明分配了小提琴:

http://jsfiddle.net/w6egw14b/2/

我删除了以下内容功能并在ng-click中给出相同的内容,

$scope.setPage = function() {
    $scope.currentPage = this.n;
};

但是当我点击页码时它无法正常工作,任何人都可以告诉我它失败的原因吗?我怎样才能实现这一目标?

我的目标是使这些功能与同一页面中存在的许多表单独工作,

1 个答案:

答案 0 :(得分:0)

这是一个经典的范围问题。 你的

<li ng-repeat="n in range(pagedItems.length, currentPage, currentPage + gap) " ng-class="{active: n == currentPage}" ng-click="currentPage = n;">
  <a href ng-bind="n + 1">1</a>
</li>

创建自己的范围并设置currentPage将在此新范围内创建变量,而不是控制器的范围。

简单而肮脏的解决方案:

<li ng-repeat="n in range(pagedItems.length, currentPage, currentPage + gap) " ng-class="{active: n == currentPage}" ng-click="$parent.currentPage = n;">
  <a href ng-bind="n + 1">1</a>
</li>

updated fiddle

我认为你应该保留setPage函数(甚至更好,传递给命名控制器)。