Angular: custom filter, 2 params
http://angularjs.org/
by mrajcok
HTML
<div ng-controller="MyCtrl">
<div ng-repeat="user in users">
<input type="text" ng-model="searchText">
<div ng-repeat="friend in user.friends | myFilter:searchText:user.name">
{{user.name}} {{friend.name}} {{friend.age}}
</div>
</div>
</div>
JavaScript
var myApp = angular.module('myApp', []);
myApp.filter('myFilter', function() {
return function(friends, searchText, username) {
var searchRegx = new RegExp(searchText, "i");
if ((searchText == undefined) || (username.search(searchRegx) != -1)) {
return friends;
}
var result = [];
for (i = 0; i < friends.length; i++) {
if (friends[i].name.search(searchRegx) != -1 ||
friends[i].age.toString().search(searchText) != -1) {
result.push(friends[i]);
}
}
return result;
}
});
function MyCtrl($scope) {
$scope.users = [{
id: 1,
name: 'Adam',
friends: [{
name: 'John',
age: 21,
sex: 'M'},
{
name: 'Brad',
age: 32,
sex: 'M'}]}];
}