2014-09-12 18 views
0

我正面臨一個有趣的問題。當輸入數據被硬編碼時,ng-table組正常工作,這與來自rest服務json的數據相同。
下面硬編碼的JSON作品:當使用休息服務輸出分配完全相同的數據時,ng-table分組不起作用

var data = [{name: "Moroni", age: 50, role: 'Administrator'}, 
      {name: "Tiancum", age: 43, role: 'Administrator'}, 
      {name: "Jacob", age: 27, role: 'Administrator'}, 
      {name: "Nephi", age: 29, role: 'Moderator'}, 
      {name: "Enos", age: 34, role: 'User'}, 
      {name: "Tiancum", age: 43, role: 'User'},    
      {name: "Enos", age: 34, role: 'User'}]; 


這不起作用

var data = response; 

我調試的響應,它是我的硬編碼的JSON數據完全相同。我無法弄清楚是什麼問題。

我已經看到了ng表的文檔,並遵循相同的。我的html和js代碼類似於 - http://bazalt-cms.com/ng-table/example/13

我的代碼與上面的示例13鏈接完全相似。只是我打電話給一個服務並獲取類似的數據。 (Plunker鏈接 - http://plnkr.co/edit/becd3D

我仍然面臨同樣的問題。任何人都可以請幫忙。

請幫忙。謝謝

回答

0

我會盡量避免「僅鏈接」類型的答案,但這是如此的人爲設計,我覺得很難理解我自己,更不用說解釋它了。

在網站上給出的例子沒有使用任何形式的回調,不知道它是否是一個錯誤。

這裏是我是如何進行的:

  • 有顯示爲ngTable AJAX加載在網站上的例子。
  • 還有另一個顯示如何分組數據的例子。

我把它們混合在一起。這是一個working demo

據我所知,整個getData函數需要將所有東西都異步或硬編碼在一起。所以你必須通過它的數據,但一些配置參數藏漢:

getData: function($defer, params) { 

    // ajax request to api 
    Api.get(params.url(), function(data) { 
     $timeout(function() { 

      // update table params 
      params.total(data.total); 

      // set new data 
      $defer.resolve(data.result); 

     }, 500); 
    }); 
} 
1

請看這裏http://plnkr.co/edit/fsNx1h?p=preview

只需將$ scope.tableParams進入回調函數從服務器獲取數據後。

$http.get('data.json').then(function(response){ 
    var data = response.data 
    $scope.tableParams = new ngTableParams({ 
     page: 1,   // show first page 
     count: 10   // count per page 
    }, { 
     groupBy: function(item) { 
      return 'First letter "' + item.name[0] + '"'; 
     }, 
     total: data.length, 
     getData: function($defer, params) { 

      var orderedData = params.sorting() ? 
        $filter('orderBy')(data, $scope.tableParams.orderBy()) : 
        data; 

      $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); 
     } 
    }); 

    }); 
}) 
+0

與我的解決方案一樣的想法,但更簡單(實現和理解),因爲你傳遞整個'tableParams'。我可能會這樣做。 – Goodzilla 2014-09-12 15:35:36

+0

我的$ scope.tableParams已經成功回調函數。它仍然沒有工作。 – 2014-09-13 05:38:54

相關問題