当前位置: 首页 > 知识库问答 >
问题:

angular js和Drupal过滤器和分页

徐旻
2023-03-14

我正在Drupal7中创建一个自定义模块,使用views_datasource模块提取Json格式的数据,并在前端对数据进行角过滤(来自view的结果不到50个)。我遇到的问题是当我尝试对结果进行分页时。该应用程序显示所有结果,底部有分页编号。当我输入筛选器文本输入时,结果被正确筛选,分页反应正常(收缩和扩展)。我试图做的是使我的显示结果和分页一起工作,这样每个页面的最大结果数是2。我对此非常陌生,所以任何小小的帮助都很感激。提前感谢您的时间!这是我到目前为止的代码。首先我有一个app.js

var cats = angular.module('cats', ['ui.bootstrap']);

jQuery(document).ready(function() { 
  angular.bootstrap(document.getElementById('cats-app'),['cats']);
});

然后我的catscontroller.js

cats.controller('catscontroller', function ($scope, $http, $filter, $timeout) {    
  $scope.currentPage = 1;
  $scope.itemsPerPage = 2;

$scope.allCats = [];
  $http.get('json/cats').success(function (result) {    
    $scope.allCats =   result.nodes;
  });      

$scope.filter = function() {
        $timeout(function() {             
            $scope.totalItems = $scope.filtered.length;

        }, 10);

    };

     $scope.pageChanged = function (currentPage) {
    var start = (currentPage - 1) * $scope.itemsPerPage;
    var end = start + $scope.itemsPerPage;
    $scope.allCats = $scope.allCats.slice(start, end);
    };

});
<div id="cats-app" ng-controller="catscontroller" >
 <input type="text" ng-model="search.node.title" ng-change="filter()" placeholder="Search"/><br/>
    <br/>
    <ul>
        <li ng-repeat="cat in filtered = (allCats | filter:search) " >
        {{cat.node.title}}</li>
    </ul>

  <div class="pagination-centered">
      <pagination total-items="totalItems" ng-model="currentPage" items-per-page="itemsPerPage"
       ng-change="pageChanged(currentPage)"></pagination>    
 </div>    
</div>
 cats.controller('catscontroller', function ($scope, $http, $filter, $timeout) {

  $scope.currentPage = 1;
  $scope.itemsPerPage = 2;
  $scope.allCats = [];
  $scope.cats=[];
  $scope.filter = function() {
        $timeout(function() {             
            $scope.totalItems = $scope.filtered.length;

        }, 10);

    };

     $scope.pageChanged = function (currentPage) {
    var start = (currentPage - 1) * $scope.itemsPerPage;
    var end = start + $scope.itemsPerPage;
    $scope.cats = $scope.allCats.slice(start, end);
    };

    $http.get('json/cats').success(function (result) {    
    $scope.allCats =   result.nodes;
    $scope.filter();


    $scope.totalItems = $scope.allCats.length;
    $scope.cats = $scope.allCats.slice(0, $scope.itemsPerPage); 
    });      
});
   ....
    <div class="cat" ng-repeat="cat in cats | filter:search" >
    ....

如果我在tpl.php中使用相同的控制器

...
<li ng-repeat="cat in filtered = (cats | filter:search) " >
...

然后我在第1页只得到dog3,dog2(如果过滤器只对这两个结果起作用)

共有1个答案

徐知
2023-03-14
$scope.filter = function() {
        $timeout(function() {             
            $scope.totalItems = $scope.filtered.length;

        }, 10);

    };

     $scope.pageChanged = function (currentPage) {
    var start = (currentPage - 1) * $scope.itemsPerPage;
    var end = start + $scope.itemsPerPage;
    $scope.cats = $scope.allCats.slice(start, end);
    };

});

$http.get('json/cats').success(function (result) {    
    $scope.allCats =   result.nodes;
    $scope.filter();
 });      
 类似资料:
  • 主要内容:AngularJS 过滤器,表达式中添加过滤器,AngularJS 实例,AngularJS 实例,currency 过滤器,AngularJS 实例,向指令添加过滤器,AngularJS 实例,过滤输入,AngularJS 实例,自定义过滤器,AngularJS 实例过滤器可以使用一个管道字符(|)添加到表达式和指令中。 AngularJS 过滤器 AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式。 filter 从数组项中选择一个子集

  • 问题内容: 我是AngularJS的新手,我正在构建一个小型的概念验证租车清单应用程序,该应用程序会提取一些JSON,并通过ng- repeat并使用几个过滤器来呈现这些数据的各个部分: 现在,我想在控制器中创建一个自定义过滤器,该过滤器可以迭代ng-repeat中的项目,并仅返回满足特定条件的项目-例如,我可以根据哪个“ provider”复选框创建值数组进行检查,然后评估每个ng-repeat

  • 本文向大家介绍AngularJS 过滤器(自带和自建)详解,包括了AngularJS 过滤器(自带和自建)详解的使用技巧和注意事项,需要的朋友参考一下 过滤器用来格式化需要展示给用户的数据。AngularJS有很多实用的内置过滤器,同时也提 供了方便的途径可以自己创建过滤器。 在HTML中的模板绑定符号{{ }}内通过|符号来调用过滤器。例如:{{value|lowercase}}//将值转换成小

  • 本文向大家介绍AngularJS过滤器filter用法分析,包括了AngularJS过滤器filter用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了AngularJS过滤器filter用法。分享给大家供大家参考,具体如下: 在开发中,经常会遇到这样的场景 如用户的性别分为“男”和“女”,在数据库中保存的值为1和0,用户在查看自己的性别时后端返回的值自然是1或0,前端要转换为“男”

  • 问题内容: 我有一个由django-tables2生成的工作表: 上面的代码返回一个包含数百个对象的表,这些对象整齐地分页,每页10个项目。当我单击表格底部的“下一步”时,分页效果很好,并且可以浏览不同的页面。但是,我注意到以下行为: 单击以显示原始未过滤表的子集 单击过滤表底部的“下一步”将显示未过滤表的第二页 再次单击将显示过滤后的表格的第二页 我希望过滤器在浏览不同页面时能够保持不变。我在这

  • 问题内容: 我有一组项目,我想使用ng-model作为字符串来过滤ng- repeat来过滤集合,到目前为止,我还没有找到一种方法来使表达式被否定时起作用,我做这样的事情: 在文档中,它说我们应该使用!否定表达,但仍然没有运气。 我究竟做错了什么? 问题答案: ‘!’ 字符位于过滤器字符串的前面,如下所示: 过滤器:’!’+ languageOrigin