Edit in JSFiddle

var app = angular.module('app', []);

app.controller('MyController', function($scope) {
    $scope.friends = [
            {name:'John', age:25, gender:'boy'},
            {name:'Jessie', age:30, gender:'girl'},
            {name:'Johanna', age:28, gender:'girl'},
            {name:'Joy', age:15, gender:'girl'},
            {name:'Mary', age:28, gender:'girl'},
            {name:'Peter', age:95, gender:'boy'},
            {name:'Sebastian', age:50, gender:'boy'},
            {name:'Erika', age:27, gender:'girl'},
            {name:'Patrick', age:40, gender:'boy'},
            {name:'Samantha', age:60, gender:'girl'}
      ];
    
    
    $scope.search = function(friend){
        var index = (new Date().getSeconds()) % $scope.friends.length;
        console.log('search', index);
        return friend.name === $scope.friends[index].name;
    }
    
    $scope.handleMouseMove = function() {
        console.log("MouseMove", new Date());
    }
});
<div ng-app="app">
    <div ng-controller="MyController" ng-mousemove="handleMouseMove">
        <ul>
            <li ng-repeat="friend in friends | filter:search">{{friend.name}}</li>
        </ul>
    </div>
</div>
</style> <!-- Ugly Hack to make remote files preload in jsFiddle --> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<style>