2015-11-20 79 views
0

我之前已經使用過ngTable和靜態數據,它運行良好(列表,排序和過濾)。我使用ngTable v 0.8.3AngularJS ngTable不起作用

我的目標

這一次,我想創建一個ngTable從Web服務加載的數據。 我做了一個自定義工廠,能夠創建我的ngTable與未來的其他實體。

問題

它不工作,我也沒有JS控制檯錯誤。當我調試時,我可以清楚地看到我的服務員工的方法查詢返回了包含員工詳細信息的完整正確的objet。我輸入getData()函數,正在創建ngTable,但數據爲空。

相關和lightweighten代碼

這裏是我的HTML標記:

<table ng-table="tableParams" class="table table-striped" show-filter="true"> 
     <tbody> 
      <tr ng-repeat="employee in $data">  
    <td data-title="'employee.firstname' | translate" filter="{'firstname' : 'text'}" sortable="'firstname'"><a ui-sref="employee.detail({id:employee.id})">{{employee.firstname}}</a></td> 
    <td data-title="'employee.lastname' | translate" filter="{lastname : 'text'}" sortable="'lastname'">{{employee.lastname}}</td> 
    <td data-title="'employee.mail' | translate" filter="{mail : 'text'}" sortable="'mail'">{{employee.mail}}</td> 
    <td data-title="'employee.phone-number' | translate" filter="{phone_number : 'text'}" sortable="'phone_number'">{{employee.phone_number}}</td> 
    <td data-title="'employee.birthdate' | translate" filter="{birthdate : 'text'}" sortable="'birthdate'">{{employee.birthdate}}</td>  
      </tr> 
     </tbody></table> 

我的角度控制器:

myapp.controller('EmployeeController', function ($rootScope, $scope, Employee, ngTableParams, ngTableFactory) { 
     $scope.tableParams = ngTableFactory.create(20, {lastname: 'asc'}); // count, sorting 
}); 

我的角度廠:

myapp.factory('ngTableFactory', function(ngTableParams, Employee) { 
    return { 
     create: function(count, sorting) { 
      return new ngTableParams({ 
       page: 1,   // initial page 
       count: count,  // count per page 
       sorting: sorting // initial sorting 
      }, { 
       total: 0, 
       getData: function($defer, params) { 
        Employee.query({page: params.page(), size: params.count()}, function(result) { 
         $defer.resolve(result); 
        }); 
       } 
      }); 
     } 
    } 
}); 

編輯1,進展:

我的項目正在列出,如果我從我的查詢方法中刪除PARAMS,所以這是我的員工服務的處理不好。但是,默認情況下,排序和過濾器不適用於我的表格。做排序的作品,我一定要加入這一行對我ngTable廠,在的getData()函數:

result = $filter('orderBy')(result, params.orderBy()); 

通常情況下,基本要素的排序工作,因爲我在加入「排序」關鍵字我的HTML ngtable模板列,並且當我通過$ data數據項獲取數據時。仍在調查。

感謝您的幫助伴侶!

回答

1

就我所見,您的代碼有效。 (基於節點)請參閱https://github.com/masa67/NgTable。我沒有改變任何東西(除了填補缺少的部分,也許問題在那裏)。

表格格式不正確,但至少有數據傳入。

+0

感謝您的意見!當你說表格格式不正確時,你在說什麼? 從視圖中,我設法嘗試引號包裝,數據或$數據作爲對象來獲取,以修改ng表名等...我的表是創建,因爲我的過濾器輸入區域和排序機制是在頁面加載時創建的。但數據不在 – Alex

+0

格式問題可能只在我的示例代碼中。如果需要,我可以稍後再看看。關鍵是你的代碼爲我工作,所以問題必須在上面的問題描述中的代碼中。 – masa

+0

我刪除了一些我通過Employee查詢方法發送的參數,並且正確地列出了內容。但是,我無法排序或過濾。我需要這些參數來分頁服務器端,所以這不是一個解決方案。我會繼續挖掘。 – Alex