2015-11-02 3 views
1

У меня есть таблица в AngularJS, в которой я использовал фильтр для выполнения поиска.AngularJS: фильтрация/поиск на основе отформатированной даты

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

В таблице у меня есть поле даты, которые я отформатированный и отображается в ММ/дд/гггг:

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

Этот вопрос, оригинальный тип дата что-то вроде: «2015- 10-30 ', и фильтрация будет основана на этом. Поэтому, если я ищу 10/30/2015, он ничего не вернет. Есть ли способ разрешить это?

+0

Взгляните на мой ответ –

ответ

1

Объявите метод в рамках

Как это

$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:

вы должны вводить $filter в контроллере

0

Попробуйте как этот

Working Demo

сценарий

var app = angular.module('myApp', []); 
app.controller('Controller', function ($scope) { 
    $scope.order = {}; 
    $scope.order.OrderDate = "2015-10-30"; 


    $scope.parseDate = function(input) { 
     var parts = input.split('-'); 
     return new Date(parts[0], parts[1] - 1, parts[2]); 
    }; 
}); 

HTML

<div ng-app='myApp' ng-controller="Controller"> 
    {{parseDate(order.OrderDate) | date:"MM/dd/yyyy"}} 
</div> 

выход

10/30/2015 
+0

Спасибо за ваш ответ. Но для моего случая форматирование работает очень хорошо. Но поиск/фильтрация основана на неформатированной дате, а не на форматированной. –

+0

Проблема @Nidhish op была в поиске не на дисплее, может быть? –

+0

@LanceShi Есть ли какие-либо ограничения в поискеValue? или ваш searchValue будет всегда находиться в 'MM/dd/yyyy:'? –

Смежные вопросы