Well, there's probably be a better way (and I was typing this as Sander
answered), but the first thing that comes to mind is to inject $filter
service into your controller and set person.BirthDate to the formatted
value (or use another field altogether if you need to keep reference to the
original):
function MyCtrl($scope, $filter){
var angularDateFilter = $filter('date');
angular.forEach($scope.contacts, function(contact){
contact.BirthDate2 = angularDateFilter( contact.BirthDate, 'medium' )
})
}
<p>Filter by Name: <input type="text" ng-model="contactsfilter.Name"/></p>
<p>Filter by BirthDate: <input type="text"
ng-model="contactsfilter.BirthDate2"/></p>
<ul>
<li ng-repeat="item in contacts | filter: contactsfilter" >
<div>{{person.FirstName}}</div>
<div>{{person.BirthDate | date:"medium"}}</div>
</li>
</ul>
On Wednesday, March 19, 2014 8:57:03 PM UTC-6, Moab wrote:
>
> Looked around and couldn't find an answer for this, possibly because I'm
> not sure what this would be referred to - filtering on a filtered value?
>
> I've got a collection rendered in a simple list using ng-repeat similar to
> the following:
>
> ------------------------------------------
> <script>
> $scope.contacts = [
> {Name: "George", BirthDate: "01/15/1940"},
> {Name: "John", BirthDate: "02/15/1940"},
> {Name: "Ringo", BirthDate: "03/15/1940"},
> {Name: "Paul", BirthDate: "04/15/1940"}
> ];
> </script>
>
> <p>Filter by Name: <input type="text" ng-model="contactsfilter.Name"/></p>
> <p>Filter by BirthDate: <input type="text"
> ng-model="contactsfilter.BirthDate"/></p>
>
> <ul>
> <li ng-repeat="item in contacts | filter: contactsfilter" >
> <div>{{person.FirstName}}</div>
> <div>{{person.BirthDate | date:"medium"}}</div>
> </li>
> </ul>
> ------------------------------------------
>
> The textbox filter for Name works great, and so does the filter for
> BirthDate if I enter "1" for instance. But if I enter "Jan" of course, the
> resulting rendered list is empty because it's filtering the original column
> value of "01/15/1940", not the filtered output of "Jan 15, 1940" that is
> rendered in the column.
>
> So I'd like to be able to bind the textbox filter to the output of the the
> filtered date column and have it include or exclude the array item.
>
> Any ideas - am I missing a simple way to configure this?
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.