Angular - filter by 2 properties
by douglasloyo
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<div ng-controller="controller as ctrl">
<input type="textbox" ng-model="ctrl.search" />
<ul>
<li ng-repeat="p in ctrl.data | custom:ctrl.search" title="{{p.id}}">{{p.id}} - {{p.name}} - {{p.last}}</li>
</ul>
</div>
JavaScript
angular.module('app', [])
.filter('custom', function () {
return function (entries, filter) {
// If no filter applied then return all.
if(!filter)
return entries;
var out = [];
angular.forEach(entries, function (value, key) {
if(value.name.toLowerCase().indexOf(filter.toLowerCase()) !== -1 ||
value.id.toLowerCase().indexOf(filter.toLowerCase()) !== -1 ||
value.last.toLowerCase().indexOf(filter.toLowerCase()) !== -1) {
out.push(value);
}
});
return out;
};
})
.controller('controller', function ($scope) {
var ctrl = this;
ctrl.data = [
{id:"1", name:"John", last:"Perez"},
{id:"2", name:"Jane", last:"Lopez"},
{id:"3", name:"Mark", last:"Martinex"},
];
//$scope.hello = "Hi!";
});;
angular.bootstrap(document, ['app']);