2015-02-24 94 views
0

我对角度相当陌生并试图删除一些代码重复。我有两个控制器连接到2个不同的视图。这两个视图都会关闭到服务器以获取统计数据,然后将它们显示在表中。我正在使用ngtable。在这一点上,两个控制器都有一个ngtable的配置块,这个配置块完全一样。表格之间的唯一区别是其中一个显示比另一个更多的列。无论如何,我有两个控制器中的代码:在角度控制器中共享ngTableParams

$scope.tableParams = new ngTableParams({ 
     page: 1,   // show first page 
     count: 10,   // count per page 
     sorting: { 
      groupName: 'asc'  // initial sorting 
     } 
    }, { 
     total: $scope.data.length, // length of data 
     getData: function ($defer, params) { 

      if (!$scope.validInputs()) 
       return; 

      var orderedData = $scope.data; 
      orderedData = $scope.filterText ? 
       orderedData.filter(filter) : 
       orderedData; 

      orderedData = params.sorting() ? 
       $filter('orderBy')(orderedData, params.orderBy()) : 
       orderedData; 

      params.total(orderedData.length); // set total for recalc pagination 
      $scope.page = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()); 
      $defer.resolve($scope.page); 
     } 
    }); 

什么是一个很好的方法来消除这种重复?

回答

0

您可以使用set ngTableDefaults。

app.value('ngTableDefaults', { 
    params: { 
     page: 10,   // show first page 
     count: 100,   // count per page 
     sorting: { 
      groupName: 'asc'  // initial sorting 
     } 
    }, 
    settings: {} 
});