How to search filter date objects with ngTable in AngularJS
我有一个与此类似的表:
1 2 3 4 5 6 | <table ng-table="tableParams" show-filter="true" class="table"> <tr ng-repeat="user in $data"> <td data-title="'Name'" filter="{'userName':'text'}" sortable="'userName'">{{user.userName}}</td> <td data-title="'Created'" filter="{'userCreated':'text'}" sortable="'userCreated'">{{user.userCreated | date:'dd MMM yyyy'}}</td> </tr> </table> |
使用
我的ngTable函数如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | function userTable(){ var data = $scope.userList; //init ng-table with data $scope.tableParams = new ngTableParams({ page: 1, count: 10 }, { //data length and filters total: data.length, getData: function($defer, params) { //search filter var filteredData = params.filter() ? $filter('filter')(data, params.filter()) : data; //order filter var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : data; //resolve data params.total(orderedData.length); $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); } }); } |
然后我就打电话给
最快的操作是在您的(视图)模型中添加另一个字段,该字段将保持格式化的日期。
因此您的模型如下所示:
1 | { Name: '', Created: '', CreatedFormatted: ''} |
另一个方法...创建将在filter中使用的自定义比较器:
1 2 3 | $filter('filter')(array, expression, comparator) params.filter() returns object like {Created:"Mon 12,"} |
在每个记录的比较器格式日期内并比较字符串...