Установить недопустимый ввод, если typeahead-editable false
Я использую компонент boottrap для ввода-вывода typeahead, и я хочу принудительно отбирать для проверки моей формы.
Можно ли настроить его для установки недопустимого ввода, когда для параметра "typeahead-editable" установлено значение false, и пользователь вводит "плохое" значение, или я должен написать директиву для этого (но как?)?
Спасибо
ОБНОВЛЕНИЕ 2013-08-09 9:54:
Что вы думаете о следующем решении:
var formValidatorsModule = angular.module('app.validator.formValidator', []);
formValidatorsModule.directive('typeaheadForceSelection', function() {
return {
require : 'ngModel',
link : function(scope, elm, attrs, ctrl) {
ctrl.$parsers.push(function(viewValue) {
if (viewValue == undefined) {
ctrl.$setValidity('typeaheadForceSelection', false);
} else {
ctrl.$setValidity('typeaheadForceSelection', true);
}
return viewValue;
});
}
};
});
Ответы
Ответ 1
Директива typeahead
http://angular-ui.github.io/bootstrap/ уже поддерживает ограничение ввода совпадений (другими словами, люди могут привязываться только к модели значения, доступные в качестве совпадений в всплывающем окне typeahead). Вы можете сделать это, просто установив атрибут typeahead-editable='false'
.
Обратите внимание, что установка этого атрибута в false
не помешает людям вводить недопустимые значения. Он просто удостоверит, что соответствующий вход отмечен как недействительный, и предоставленное значение не привязано к модели.