AngularJS Filter By Object Attribute
http://stackoverflow.com/questions/25696233/angularjs-filter-collection-by-child
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.js"></script>
<div>Filter by name only: <input type="text" ng-model="search" /></div>
<ul>
<li ng-repeat="person in people[1] | nameFilter:search">{{person.boy.name}}</li>
</ul>
JavaScript
var myapp = angular.module('myapp', []);
myapp.controller('AppController', function ($scope) {
$scope.people = [
{
"0":{
"boy":{
"age":"32",
"name":"Daniel Grey"
}
},
"1":{
"boy":{
"age":"23",
"name":"John Doe"
}
} },
{
"a":{
"boy":{
"age":"32",
"name":"vicky"
}
}
}]
});
myapp.filter('nameFilter', function(){
return function(objects, criteria){
var filterResult = new Array();
if(!criteria)
return objects;
for(index in objects) {
if(objects[index].boy.name.indexOf(criteria) != -1)
filterResult.push(objects[index]);
}
console.log(filterResult);
return filterResult;
}
});