我有一个这样生成的表:
<tr data-ng-repeat="employee in employees | filter: employeeSearch">
<td>{{employee.lastName}}</td>
<td>{{employee.firstName}}</td>
<td>{{employee.hireDate | date: format : mediumDate}}</td>
<td>{{employee.phone | phone}}</td>
<td>{{employee.email}}</td>
</tr>
我正在使用文本框来过滤表格
<input type="text" id="employeeSearch" placeholder="Search employees" data-ng-model="employeeSearch" />
日期的格式类似于 2015 年 6 月 15 日,但由于它们在格式化为 mediumDate 之前存储为日期对象,因此我必须键入 2015-06-15 才能过滤到该日期。有什么方法可以指定我希望我的 employeeSearch 输入过滤显示的值而不是存储的值?
我尝试在我的查询函数中修改日期对象,但没有成功。
最佳答案
在 Controller 中创建一个方法
$scope.filter=function(obj){
return match(obj.lastName) || match(obj.firstName) || (new Date($scope.employeeSearch)) == (new Date(obj.hireDate)) || match(obj.phone) || match(obj.email)
}
function match(value){
return value.toLowerCase().indexOf($scope.employeeSearch.toLowerCase()) > -1;
}
添加此方法查看
<tr data-ng-repeat="employee in employees | filter: filter">
关于javascript - AngularJS 过滤格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878988/