2015-05-14 109 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? –