筛选日期不适用于angularjs
给定要筛选的数据:筛选日期不适用于angularjs,angularjs,angularjs-ng-repeat,angularjs-filter,Angularjs,Angularjs Ng Repeat,Angularjs Filter,给定要筛选的数据: $scope.friends = [ { "name": 'John', "phone": '555-1212', "age": 10, "name-phone-age":now.setMinutes(now.getMinutes() + 30) }, { "name": 'Mary', "phone": '555-9876', "age": 19, "name-phone-age":now.setMinutes(now.getMinu
$scope.friends = [
{ "name": 'John', "phone": '555-1212', "age": 10, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Mary', "phone": '555-9876', "age": 19, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Mike', "phone": '555-4321', "age": 21, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Adam', "phone": '555-5678', "age": 35, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Julie', "phone": '555-8765', "age": 29, "name-phone-age":now.setMinutes(now.getMinutes() + 30) }
];
使用搜索输入框过滤除日期字段外的任何字段
比如说
Search : John
Name Phone Number Age Some_Random_Date_Time
John 555-1212 10 2014-08-27 20:24:40 540
然后搜索字符串2014,该字符串是的一部分,如图所示,返回的结果为空
Name Phone Number Age Some Random Date Time
John 555-1212 10 2014-08-27 20:24:40 540
Mary 555-9876 19 2014-08-27 20:54:40 540
Mike 555-4321 21 2014-08-27 21:24:40 540
Adam 555-5678 35 2014-08-27 21:54:40 540
Julie 555-8765 29 2014-08-27 22:24:40 540
Search : 2014
Name Phone Number Age Some_Random_Date_Time
日期搜索过滤器实际上工作正常。问题在于你的数据。过滤器对绑定到它的数据起作用。在您的示例中,仅显示器使用日期格式过滤器以特定格式显示日期。如果您使用搜索过滤器,它将在迭代的列表上工作(记住日期格式过滤器不会更新基础模型),因此可以创建一个自定义过滤器,该过滤器可以以格式化程序的方式处理日期。但在您的情况下,因为您需要显示格式化的日期,所以我只需要在模型本身中格式化日期
//Add a new property or update the existing property, here i am adding a new one.
//Or just use friends.forEach
angular.forEach(friends, function(friend){
friend.formattedDate = $filter('date')(friend['name-phone-age'],'yyyy-MM-dd HH:mm:ss');
}) ;
$scope.friends = friends;
现在从视图中删除不需要的过滤器,改为使用此字段
<td>{{friend.formattedDate}}</td>
{{friend.formattedDate}
这是因为在实际数据中,日期不是那种格式。您只是显示基于日期格式的过滤器,它不会修改基础data@PSL:如果我需要根据输出窗口上显示的内容进行搜索,我该怎么做?是否编写自定义筛选器?是的,或者在friend对象中添加一个属性以显示格式化的日期..,这样更合适。这里有一个ES3友好的变体。。。这与PSLs答案完全相同