在角度控制器之间共享ngTableParams

时间:2015-02-24 19:56:58

标签: angularjs ngtable

我对angular很新,并尝试删除一些代码重复。我有两个控制器连接到2个不同的视图。两个视图都调用服务器来获取统计数据,然后将它们显示在表中。我正在使用ngtable。此时,两个控制器都具有完全相同的ngtable配置块。表之间的唯一区别是,其中一个表显示的列数多于另一个。无论如何,我在两个控制器中都有这个代码:

 $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);
        }
    });

删除此重复的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用set ngTableDefaults。

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