Skip to content

Instantly share code, notes, and snippets.

@borntorun
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save borntorun/3b95d9dbb16f2c3af859 to your computer and use it in GitHub Desktop.
Save borntorun/3b95d9dbb16f2c3af859 to your computer and use it in GitHub Desktop.
Example file for http://borntorun.github.io/angular-typeaheadjs/ basics use case
<div class="demo" ng-controller="BasicsCtrl as vm">
<div class="selection">Selection:&nbsp;<span>{{vm.itemonSelected}}</span></div>
<angular-typeaheadjs angty-ttoptions="{{vm.ttoptions}}"
angty-ttdatasets="vm.datasets"
angty-options="{{vm.options}}"
angty-onselect>
<input class="typeahead" type="text" placeholder="Search for US States"/>
</angular-typeaheadjs>
</div>
angular.module('appdemo', ['angularTypeaheadjs'])
.controller('BasicsCtrl', [ '$scope', BasicsCtrl ]);
function BasicsCtrl($scope) {
var vm = this;
vm.itemonSelected = '';
vm.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
];
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substrRegex;
// an array that will be populated with substring matches
matches = [];
// regex used to determine if a string contains the substring `q`
substrRegex = new RegExp(q, 'i');
// iterate through the pool of strings and for any string that
// contains the substring `q`, add it to the `matches` array
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push(str);
}
});
cb(matches);
};
};
vm.ttoptions = {
minLength: 1
};
vm.options = {
selectOnAutocomplete: true
};
vm.datasets = [{
name: 'states',
source: substringMatcher(vm.states)
}];
$scope.$on('typeahead:select', function (ev, item) {
$scope.$apply(function () {
vm.itemonSelected = item[1];
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment