2016-04-27 140 views
3

我有像這樣生成的表:AngularJS上格式化的日期過濾

<tr data-ng-repeat="employee in employees | filter: employeeSearch"> 
    <td>{{employee.lastName}}</td> 
    <td>{{employee.firstName}}</td> 
    <td>{{employee.hireDate | date: format : mediumDate}}</td> 
    <td>{{employee.phone | phone}}</td> 
    <td>{{employee.email}}</td> 
</tr> 

我使用文本框來篩選表

<input type="text" id="employeeSearch" placeholder="Search employees" data-ng-model="employeeSearch" /> 

的日期格式應該是6月15日,但由於它們在格式化爲mediumDate之前作爲日期對象存儲,所以我必須鍵入2015-06-15才能過濾到該日期。有什麼方法可以指定我希望我的employeeSearch輸入過濾顯示的值而不是存儲的值嗎?

我試着修改我的查詢函數中的日期對象無濟於事。

+0

貴'employeeSearch'過濾器是什麼樣子 –

+0

這是上面的線。這只是一個文本框,它正在過濾任何列。 – ajthyng

回答

4

在控制器

$scope.filter=function(obj){ 
return match(obj.lastName) || match(obj.firstName) || (new Date($scope.employeeSearch)) == (new Date(obj.hireDate)) || match(obj.phone) || match(obj.email) 
} 
function match(value){ 
return value.toLowerCase().indexOf($scope.employeeSearch.toLowerCase()) > -1; 
} 

創建方法添加此方法來查看

<tr data-ng-repeat="employee in employees | filter: filter"> 
+1

有比編寫一段很長的代碼更好的方法來寫...; - ; – Quill

+2

@Quill請隨時分享:) –

+0

您可以創建一個函數來簡化這些'$ scope.employeeSearch'部分 – Quill