2015-05-14 69 views
0

我想实现这里提到的ng-grid的服务器端分页示例http://angular-ui.github.io/ng-grid/。不幸的是,我不太了解代码。AngularJS ng-grid的服务器端分页

这是我的情况: 1.说我有一个页面有2个文本框和一个按钮。我想将这两个文本框的值发布到一个Web服务上,只需单击该按钮即可。返回的json应显示为网格。但在plunker http://plnkr.co/edit/50vJrs?p=preview

$scope.getPagedDataAsync = function (pageSize, page, searchText) { 
    setTimeout(function() { 
     var data; 
     if (searchText) { 
      var ft = searchText.toLowerCase(); 
      $http.get('largeLoad.json').success(function (largeLoad) {  
       data = largeLoad.filter(function(item) { 
        return JSON.stringify(item).toLowerCase().indexOf(ft) != -1; 
       }); 
       $scope.setPagingData(data,page,pageSize); 
      });    
     } else { 
      $http.get('largeLoad.json').success(function (largeLoad) { 
       $scope.setPagingData(largeLoad,page,pageSize); 
      }); 
     } 
    }, 100); 
}; 

代码会呈现在页面加载的网格(我不希望)。我不明白的是如何将$ scope.getPagedDataAsync函数与ng-click关联起来?

  1. 虽然在控制器中有html scope.filterOptions,但html代码没有任何文本框用于搜索网格。在搜索代码中如何进行搜索?

希望有更多的文档在网站上。

谢谢

回答

0

在plunker,在你的问题引用函数立即调用:

$scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage); 

是否注释掉该行收到预期的效果?

至于过滤器,它可能是作为一种便利,因此您可以自己添加过滤器文本字段。它在一个对象中定义,因此您可以使用自定义指令或ng-include块。

+0

我很抱歉,但我不明白你为什么要评论我们的?说我有$ scope.StudentName和$ scope.Grade文本框和ng-click =“getStudentGrid()”。那么如何确保getStudentGrid调用这个getPagedDataAsync? –

+0

只需将它所在的行注释掉即可。在那一刻你有'function foo(){...}',然后在下一行'foo()'。第二部分是为什么网页在页面加载时填充,脚本有效地为您点击一次。 – skolsuper

+0

谢谢。对不起,这是跛脚。我知道我需要评论你提到的那一行。但我仍然想知道如何使用getStudent()函数的两个参数页面大小和当前页面$ scope.getPagedDataAsync? –