Skip to content

Commit

Permalink
feat(NgTableParams): better default implementation of getData that fi…
Browse files Browse the repository at this point in the history
…lters and sorts

Use the ngTableDefaultGetData service to apply the `filter`, `orderBy` and paging values of the
`NgTableParams` to the `data` array on the `settings` object
  • Loading branch information
ccrowhurstram committed Aug 2, 2015
1 parent bdf5d9e commit 8d91260
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 9 deletions.
7 changes: 4 additions & 3 deletions examples/demo27.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ <h1>Table with data passed at init</h1>
<p><strong>Count per page:</strong> {{tableParams.count()}}


<table ng-table="tableParams" class="table ng-table-responsive">
<table ng-table="tableParams" class="table ng-table-responsive" show-filter="true">
<tr ng-repeat="user in $data">
<td data-title="'Name'">
<td data-title="'Name'" filter="{ name: 'text'}">
{{user.name}}
</td>
<td data-title="'Age'">
<td data-title="'Age'" filter="{ age: 'text'}" sortable="'age'">
{{user.age}}
</td>
</tr>
Expand Down Expand Up @@ -62,6 +62,7 @@ <h1>Table with data passed at init</h1>
page: 1, // show first page
count: 10 // count per page
}, {
showFilter: true,
data: data
});
})
Expand Down
9 changes: 3 additions & 6 deletions src/scripts/03-params.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ app.value('ngTableDefaults', {
* @description Parameters manager for ngTable
*/

app.factory('NgTableParams', ['$q', '$log', 'ngTableDefaults', 'ngTableGetDataBcShim', function($q, $log, ngTableDefaults, ngTableGetDataBcShim) {
app.factory('NgTableParams', ['$q', '$log', 'ngTableDefaults', 'ngTableGetDataBcShim', 'ngTableDefaultGetData', function($q, $log, ngTableDefaults, ngTableGetDataBcShim, ngTableDefaultGetData) {
var isNumber = function(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
};
Expand Down Expand Up @@ -304,11 +304,8 @@ app.factory('NgTableParams', ['$q', '$log', 'ngTableDefaults', 'ngTableGetDataBc
* @param {Object} params New parameters
*/
this.getData = function(params) {
if (angular.isArray(this.data) && angular.isObject(params)) {
return this.data.slice((params.page() - 1) * params.count(), params.page() * params.count());
} else {
return [];
}
// note: this === settings
return ngTableDefaultGetData(this.data, params);
};

/**
Expand Down

0 comments on commit 8d91260

Please sign in to comment.