Skip to content

Instantly share code, notes, and snippets.

@Camusensei
Last active August 29, 2015 13:57
Show Gist options
  • Save Camusensei/9775014 to your computer and use it in GitHub Desktop.
Save Camusensei/9775014 to your computer and use it in GitHub Desktop.
app.directive('uiAutocomplete', ['autoCompleteService', function(autoCompleteService) {
return {
require: 'ngModel',
link: function(scope, element, attrs, controller) {
var _renderItem = function(ul, item) {
return $( "<li>" )
.append( $( "<a>" + item.label + "</a>" ) )
.appendTo( ul );
},
select = function(event, ui) {
if (ui.item) {
ui.item.value = ui.item.value.replace(/<\/?[^>]+(>|$)/g, "");
ngModelCtrl.$setViewValue(ui.item.iataCode);
scope.$apply();
element.itemSelected = true;
}
},
close = function(event, ui){
if (this.itemSelected) {
$(this).select();
this.itemSelected = false;
}
};
element.autocomplete(
{
minLength: 1,
autoFocus: true,
close: close,
source: autoCompleteService.source,
select: select,
delay: 100,
focus: function(event, ui) {
//Remove tags from the input
ui.item.value = ui.item.value.replace(/<\/?[^>]+(>|$)/g, "");
}
}
);
element.data("uiAutocomplete")._renderItem = _renderItem;
}
};
}]);
app.directive('uiAutocomplete', ['autoCompleteService', function(autoCompleteService) {
return {
link: function(scope, element, attrs, controller) {
var _renderItem = function(ul, item) {
return $( "<li>" )
.append( $( "<a>" + item.label + "</a>" ) )
.appendTo( ul );
},
select = function(event, ui) {
if (ui.item) {
ui.item.value = ui.item.value.replace(/<\/?[^>]+(>|$)/g, "");
scope.$apply(function(scope){scope.basic[attrs.uiAutocomplete] = ui.item.iataCode;});
element.itemSelected = true;
}
},
close = function(event, ui){
if (this.itemSelected) {
$(this).select();
this.itemSelected = false;
}
};
element.autocomplete(
{
minLength: 1,
autoFocus: true,
close: close,
source: autoCompleteService.source,
select: select,
delay: 100,
focus: function(event, ui) {
//Remove tags from the input
ui.item.value = ui.item.value.replace(/<\/?[^>]+(>|$)/g, "");
}
}
);
element.data("uiAutocomplete")._renderItem = _renderItem;
}
};
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment