На input вешаете ngChange, и слушаете изменения. Желательно с ng-modeloptions={debounce: '500'} хотя бы, чтобы не дергалось всё после каждого ввода.
В обработчике изменения простой Array.filter с нужными параметрами.
Можно это сделать и через
filter, но мне такой вариант не очень нравится.