我想知道是否有人可以帮助我在ng-repeat中过滤日期 我有一个文本字段,我输入搜索文本以过滤表格中的结果
采取这个减少的例子`
<tr id="credentialsData" ng-repeat="credential in credentials.data | filter:credentialsSearchText">
<td>{{credential.createdDate | date:'medium'}}</td>
</tr>`
credential.createdDate以2015-03-24T21:19:49Z格式返回其余调用
当我附上中期日期过滤器时 - 显示为2015年3月24日下午9:19:49
然而,当我在String Mar或9上搜索时,我没有得到任何结果。 Angularjs搜索基础对象并忽略过滤器。 我已经在网上阅读了其他选项,其中有人建议在json对象中添加不同的日期格式,但不幸的是,这不是我的选择
对此有任何帮助将不胜感激
干杯 达明
答案 0 :(得分:1)
您可以使用自定义功能进行过滤。
https://docs.angularjs.org/api/ng/filter/filter
<tr id="credentialsData" ng-repeat="credential in credentials.data | filter:credentialsSearchText:compareCredentialDate">
<td>{{credential.createdDate | date:'medium'}}</td>
</tr>
在您的控制器中,输入
$scope.compareCredentialDate = function(credential, expected) {
// you have to inject '$filter' to use this:
var dateFilter = $filter('date');
// this is the value that "credential.createdDate | date:'medium'"
// evaluates to:
var formattedDateString = dateFilter(credential.createdDate, 'medium');
// hypothetical matching method - you can implement whatever you
// want here:
var isMatch = formattedDateString.indexOf(expected) >= 0;
return isMatch;
}