javascript - AngularJS:根据格式化日期过滤/搜索

标签 javascript angularjs

我在 AngularJS 中有一个表,我使用过滤器来执行搜索功能。

<tr ng-repeat="order in orders | orderBy:sortType:sortReverse |filter:searchValue">

在表中,我有一个日期字段,我将其格式化并显示为 MM/dd/yyyy:

<td>
     {{order.OrderDate | date:"MM/dd/yyyy"}}
</td>

问题是,原始日期类型类似于:“2015-10-30”,过滤将基于此。因此,如果我搜索 10/30/2015,它不会返回任何内容。有什么办法可以解决这个问题吗?

最佳答案

在作用域中声明方法

像这样

$scope.filterValue=function(obj){
  return $filter('date')(obj.OrderDate, 'MM/dd/yyyy') == $filter('date')($scope.searchValue, 'MM/dd/yyyy')
}

将此方法添加到您的 html 过滤器中

像这样

<tr ng-repeat="order in orders | orderBy:sortType:sortReverse |filter:filterValue">

N:B:

你必须在 Controller 中注入(inject)$filter

关于javascript - AngularJS:根据格式化日期过滤/搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470959/

相关文章:

javascript - 如果 DIV 包含选中的复选框,则设置显示为 block

JavaScript/jQuery : Is there a better way to acomplish this in Javascript?

javascript - 将动态行添加到 ngTable 不显示

javascript - Uncaught Error : [$injector:unpr] Unknown provider:

javascript - 删除 AngularJS 类

javascript - 查找 2 个对象之间的第一个匹配项

javascript - 按特定整数切片或 trim 最后一个字符

angularjs - 使用@types/angular 作为全局

javascript - 等到scrollTo完成后再运行命令

javascript - 如何在指令测试中注入(inject)服务