gpt4 book ai didi

javascript - 如何在 AngularJS 中使用 ngTable 搜索过滤日期对象

转载 作者:行者123 更新时间:2023-11-28 00:55:23 24 4
gpt4 key购买 nike

我有一个与此类似的表格:

<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>

使用 ngTableAngular,这会根据我提供的数据生成一个表格。它允许用户使用文本输入搜索每一列。但是,搜索过滤器不适用于 Created 列,因为它是一个 JavaScript 日期对象(已被过滤以以不同的格式显示)。如何使搜索过滤适用于日期?

我的 ngTable 函数如下所示:

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

});
}

然后我只需调用usertable(someData);

最佳答案

最快的方法是将另一个字段添加到您的( View )模型中,以保留格式化的日期。

所以你的模型看起来像:

{ Name: '', Created: '', CreatedFormatted: ''}
<小时/>

另一个apporach ...创建将在过滤器中使用的自定义比较器:

$filter('filter')(array, expression, comparator)

params.filter() returns object like {Created: "Mon 12,"}

在比较器内格式化每条记录的日期并比较字符串...

关于javascript - 如何在 AngularJS 中使用 ngTable 搜索过滤日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com