javascript - AngularJS:过滤器更改时的触发功能

标签 javascript angularjs

我正在对 Angular 表格进行分页,并希望显示表格下方的所有页码。

我计划创建一个页码数组,然后使用 ng-repeat 来显示它们:

HTML

<tr ng-repeat-start="item in c.filteredList = (c.data | dynamicFilter:c.filter | orderBy:c.sortOrder.order:c.sortOrder.reverse)">

JS

    this.checkPage = function(){
      this.pageNumArr = [];

      for(i=0; i<this.filteredList.length/this.perPage; i++){
        this.pageNumArr.push(i);
      }
    }

其中 this.perPage 是每页的项目数(由用户设置)。

我不知道如何在过滤器更改时触发 checkPage()

最佳答案

您最好将页码 ng-repeat 绑定(bind)到创建并返回页码数组的函数。这将为该函数创建一个观察程序并使页码数组保持最新。

无需在 Controller 中手动创建 $watch。

 this.pageNumbers= function(){
      var pageNumArr = [];

      for(i=0; i<this.filteredList.length/this.perPage; i++){
        pageNumArr.push(i);
      }
      return pageNumArr

    }

<span ng-repeat="page in c.pageNumbers()">{{page}}</span>

关于javascript - AngularJS:过滤器更改时的触发功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091157/

相关文章:

javascript - 客户更新请求可通过 POSTMAN 处理,但无法使用 Shopify 私有(private)应用程序通过 AJAX 处理

javascript - AngularJS 中的第一个、ng-include 或 ng-repeat 是什么?

javascript - 设置输入字段的值后防止页面重新加载

javascript - ionic 在另一个方法中调用提交方法无法正常工作

javascript - 匹配对象数组中的对象键并返回键,具有最高音量值的值

javascript - window.open 不打开窗口

angularjs - github 重定向_uri 与 angularjs

javascript - AngularJS ag-grid 调整大小后获取列宽

javascript - 如何将字符串转换为具有属性和函数引用的 Javascript 对象?

javascript - angularjs $window.location.href 返回没有 css 的页面