ng-bs-daterangepicker
ng-bs-daterangepicker copied to clipboard
Support for ngTable
Tried to use this module/plugin with ngTable
, but was unsuccessful.
function getTableParams(data, sortBy)
{
return new ngTableParams({
page: 1,
count: 5,
sorting: sortBy
}, {
total: data.length,
getData: function($defer, params) {
var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
},
counts: []
});
}
And custom filter like that
<td data-title="'Date'" filter="{'dob': 'daterange'}">{{row.dob}}</td>
...
<script type="text/ng-template" id="ng-table/filters/daterange.html">
<div class="input-group date-range-input">
<input class="form-control" id="input-7a-orig" type="daterange" ng-model="params.filter()[name]" format="DD.MM.YYYY" locale="{applyLabel:'Принять', cancelLabel:'Сбросить', fromLabel:'С', toLabel:'По', customRangeLabel:'Custom', firstDay:1}" value="" />
<span class="input-group-btn">
<label class="btn btn-default date" for="input-7a-orig"><i class="glyphicon glyphicon-calendar"></i></label>
</span>
</div>
</script>
...
And in getData
I tried to look, what comes in as filter, but immediately I got an error like
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"],["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}; oldVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\"2014-08-21T21:00:00.000Z\"}},\"sorting\":{},\"group\":{},\"groupBy\":null}"]]
http://errors.angularjs.org/1.2.18/$rootScope/infdig?p0=10&p1=%5B%5B%22para…B%7D%2C%5C%22group%5C%22%3A%7B%7D%2C%5C%22groupBy%5C%22%3Anull%7D%22%5D%5D
at http://eugene-nortal:9001/bower_components/angular/angular.js:78:12
at Scope.$digest (http://eugene-nortal:9001/bower_components/angular/angular.js:12434:19)
at Scope.$apply (http://eugene-nortal:9001/bower_components/angular/angular.js:12660:24)
at http://eugene-nortal:9001/bower_components/angular/angular.js:14167:36
at completeOutstandingRequest (http://eugene-nortal:9001/bower_components/angular/angular.js:4337:10)
at http://eugene-nortal:9001/bower_components/angular/angular.js:4638:7 angular.js:9937
Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [["params.$params; newVal: {\"page\":1,\"count\":5,\"filter\":{\"dob\":{\"startDate\":\"2014-08-21T21:00:00.000Z\",\"endDate\":\...<omitted>...5D angular.js:78
or simply https://docs.angularjs.org/error/$rootScope/infdig?p0=10&p1=%5B%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D,%5B%22params.$params;%20newVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D;%20oldVal:%20%7B%5C%22page%5C%22:1,%5C%22count%5C%22:5,%5C%22filter%5C%22:%7B%5C%22dob%5C%22:%7B%5C%22startDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22,%5C%22endDate%5C%22:%5C%222014-08-21T21:00:00.000Z%5C%22%7D%7D,%5C%22sorting%5C%22:%7B%7D,%5C%22group%5C%22:%7B%7D,%5C%22groupBy%5C%22:null%7D%22%5D%5D
hey did you manage to get around this?
Yes and no. It is not a OKAY solution. I'd say a it is a work around
function getTableParams(data, sortBy) {
return new ngTableParams({
page: 1,
count: 25,
sorting: sortBy
}, {
total: data.length,
getData: function($defer, params) {
var filteredData = $filter('filter')(data, _.omit(params.filter(), 'dob')); // exclude date range from filter - we'll filter dates manually, see next lines
if (params.filter().dob) {
filteredData = $filter('dateInRange')(filteredData, params.filter().dob, 'dob', 'DD.MM.YYYYY HH:mm');
}
var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
},
counts: []
});
}
right, i see, cheers for the snippet
hey you guys fixed this?