在AngularJS中,您可以按如下方式过滤结果:
<input type="search" ng-model="qcCtrl.searchTerm" placeholder="search" />
<tr ng-repeat="row in qcCtrl.data | filter: qcCtrl.searchTerm">
<td>{{row.dateField | date: 'yyyy-MM-dd HH:mm:ss'}}</td>
<td>{{row.textField}}</td>
</tr>
如果用户在搜索框中输入文本,则此方法正常,但如果他们输入日期,则找不到匹配项。
如何创建一个与文本和日期匹配的过滤器?
我已经开始在我的控制器中创建自定义日期过滤器功能(下面),但是这只适用于日期,我想要一些适用于文本和日期的东西。
ctrl.filterDate = function (item) {
var dateFilter = $filter('date');
var formattedDateString = dateFilter(item.FifoDate, 'yyyy-MM-dd HH:mm:ss');
return ctrl.searchTerm == null || ~formattedDateString.indexOf(ctrl.searchTerm);
};
答案 0 :(得分:0)
为了解决这个问题,我只是在我的对象上创建了另一个包含格式化日期的属性,然后现有的过滤器工作了:
angular.forEach(ctrl.data, function(value, index) {
value.FifoDate = new Date(parseInt(value.FifoDate.substr(6)));
value.searchFifoDate = $filter('date')(value.FifoDate, 'yyyy-MM-dd HH:mm:ss');