Skip to content

Commit

Permalink
Make typeahead respect ngModelOptions="{getterSetter: true}"
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Karikh committed Jun 17, 2015
1 parent 49e73a8 commit 6baf354
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion src/typeahead/typeahead.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,27 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.position', 'ui.bootstrap
//INTERNAL VARIABLES

//model setter executed upon match selection
var $setModelValue = $parse(attrs.ngModel).assign;
var $setModelValue = (function() {
var options = $parse(attrs.ngModelOptions)(),
parsedNgModel = $parse(attrs.ngModel),
parsedNgModelAssign = $parse(attrs.ngModel).assign,
ngModelSet;
if (options && options.getterSetter) {
var invokeModelSetter = $parse(attrs.ngModel + '($$$p)');

ngModelSet = function($scope, newValue) {
if (angular.isFunction(parsedNgModel($scope))) {
invokeModelSetter($scope, {
$$$p: newValue
});
} else {
parsedNgModelAssign($scope, modelCtrl.$modelValue);
}
};
}

return ngModelSet || parsedNgModelAssign;
})();

//expressions used by typeahead
var parserResult = typeaheadParser.parse(attrs.typeahead);
Expand Down

0 comments on commit 6baf354

Please sign in to comment.