A minimal looking autocomplete directive originally developed by Daryl Rowland as Angucomplete, and I added a few tweaks to it and renamed it to angucomplete-alt.
<div angucomplete-alt id="ex1" placeholder="Search countries" maxlength="50" pause="100" selected-object="selectedCountry" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight"></div>
<div angucomplete-alt id="ex2" placeholder="Search people" pause="300" selected-object="selectedPerson" local-data="people" local-search="localSearch" title-field="firstName,surname" description-field="twitter" image-field="pic" minlength="1" input-class="form-control form-control-small" match-class="highlight"> </div>
// search function to match full text $scope.localSearch = function(str, people) { var matches = []; people.forEach(function(person) { var fullName = person.firstName + ' ' + person.surname; if ((person.firstName.toLowerCase().indexOf(str.toString().toLowerCase()) >= 0) || (person.surname.toLowerCase().indexOf(str.toString().toLowerCase()) >= 0) || (fullName.toLowerCase().indexOf(str.toString().toLowerCase()) >= 0)) { matches.push(person); } }); return matches; };
<div angucomplete-alt id="ex3" placeholder="Search countries" pause="100" selected-object="selectedCountry3" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" clear-selected="true"> </div>
<div angucomplete-alt id="ex4" placeholder="Search countries" pause="100" selected-object="selectedCountry4" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" override-suggestions="true" clear-selected="true"> </div>
<div angucomplete-alt id="ex5" placeholder="Search projects" pause="500" selected-object="selectedProject" remote-url="https://api.github.com/search/repositories" remote-url-request-formatter="remoteUrlRequestFn" remote-url-data-field="items" title-field="name" description-field="description" minlength="2" input-class="form-control form-control-small" match-class="highlight"> </div>
<div angucomplete-alt id="ex6" placeholder="Search countries" pause="100" selected-object="selectedCountry6" local-data="countries" search-fields="name,code" title-field="name" description-field="code" minlength="1" input-class="form-control form-control-small" match-class="highlight"> </div>
<div angucomplete-alt id="ex7" placeholder="Search countries" pause="100" selected-object="countrySelected" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight"> </div>
<form name="form"> <h3><a name="example8" class="page-anchor">Example 8 - Required</a><span ng-show="form.$valid" class="valid-status valid">[VALID]</span><span class="valid-status invalid" ng-show="form.$invalid">[INVALID]</span></h3> <div class="padded-row"> <span>Choose two countries</span> <div angucomplete-alt id="ex8a" placeholder="Search countries" pause="100" selected-object="countrySelected8a" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" field-required="true" input-name="country8a"> </div> <div angucomplete-alt id="ex8b" placeholder="Search countries" pause="100" selected-object="countrySelected8b" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" field-required="true" input-name="country8b"> </div> </div> </form>
<div angucomplete-alt id="ex9" placeholder="Search countries" pause="100" selected-object="countrySelectedFn9" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" initial-value="countrySelected9"> </div>
<div angucomplete-alt id="ex10" placeholder="Search countries" pause="100" selected-object="countrySelected10" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" input-changed="inputChanged"> </div>
<div angucomplete-alt id="ex11" placeholder="Search countries" pause="100" selected-object="countrySelected11" local-data="countries" search-fields="name" title-field="name" minlength="2" input-class="form-control form-control-small" match-class="highlight" auto-match="true"> </div>
<div angucomplete-alt id="ex12" placeholder="Search countries" pause="100" selected-object="countrySelected12" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small small-input" match-class="highlight" focus-in="focusIn()" focus-out="focusOut()"> </div>
<div angucomplete-alt id="ex13" placeholder="Search countries" pause="100" selected-object="countrySelected13" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" disable-input="disableInput"> </div>
<div angucomplete-alt id="ex14" placeholder="Search countries" pause="100" selected-object="countrySelected14" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight" template-url="/my-custom-template.html"> </div>
<div angucomplete-alt id="ex15" placeholder="Search countries" maxlength="50" pause="100" selected-object="selectedCountry15" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight"> </div>
<div angucomplete-alt id="ex16" placeholder="Search countries" maxlength="50" pause="100" selected-object="selectedCountry16" initial-value="selectedCountry16" local-data="countries" search-fields="name" title-field="name" minlength="1" input-class="form-control form-control-small" match-class="highlight"> </div>