javascript - AngularJS 过滤格式化日期

标签 javascript angularjs

我有一个这样生成的表:

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

相关文章:

javascript - 在 ng-repeat 中添加新的输入字段

javascript - Jquery:你能给我解释一下这行代码吗?帮助我理解它,或者提供我可以了解它的引用资料

javascript - touchstart 处理程序后的 touchmove 处理程序将无法工作

javascript - 如何在angularjs中以横向模式打印div

javascript - AngularJs - 在新选项卡中打开 url

angularjs - 在ui-select中显示对象的键值

javascript - 背景音乐静音/取消静音切换?更换图片?

javascript - 我可以使用内容脚本 js 文件以编程方式注入(inject) CSS 文件吗?

javascript - 将 ng-repeat 中的值与 php 值进行比较

javascript - AngularJS 在 onclick 事件中的一个应用程序中具有两个 Controller