Ответ 1
Директива typeahead из репозитория http://angular-ui.github.io/bootstrap/ была построена так, чтобы хорошо вписываться в существующую экосистему AngularJS. Это означает, что эта директива пытается повторно использовать как можно больше синтаксиса, фильтров и директив, уже используемых в AngularJS.
Вернуться к вашему вопросу - сама фильтрация выполняется фильтром фильтров Angular, описанным здесь: http://docs.angularjs.org/api/ng.filter:filter Указанный синтаксис фильтра достаточно гибкая, чтобы ограничить поиск выбранным набором свойств:
typeahead="stuff as stuff.name for stuff in stuffs | filter:{name: $viewValue}"
Обратите внимание: filter:{name: $viewValue}
Рабочий планк здесь: http://plnkr.co/edit/o1qWKq8LSmbbmVaYkOvb?p=preview