2013-08-08 2 views
12

Я использую компонент boottrap типа pohead, и я хочу принудительно выбрать для подтверждения моей формы. Можно ли настроить его для установки недопустимого ввода, когда для параметра 'typeahead-editable' установлено значение false, и пользователь вводит «плохое» значение, или я должен написать директиву для этого (но как?)?Установить ввод недействительным, когда typeahead-editable является ложным

Благодаря

UPDATE 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; 
      }); 
     } 
    }; 
}); 
+0

Эта ошибка была исправлена ​​с 2016 года, lol ... см. Plunker: http://plnkr.co/edit/NtGXL7uPLYKCHESnZyxs?p=preview –

ответ

17

typeahead директива http://angular-ui.github.io/bootstrap/ уже поддерживает для ограничения входа на матчи (другими словами, люди могут привязывать к модели только значения, доступные в качестве совпадений во всплывающем окне typeahead). Вы можете сделать это, просто установив атрибут typeahead-editable='false'.

Обратите внимание, что установка этого атрибута на false будет не не позволяет людям вводить недопустимые значения. Он просто удостоверится, что соответствующий вход отмечен как недействительный, и предоставленное значение не привязано к модели.

+0

Я знаю, что редактируемый набор в false позволяет пользователю вводить любое значение. Это просто не задает модель. То, что я нашел странным, заключается в том, что поле ввода не является «недопустимым», когда пользователь вводит не выбираемое значение. : [Пример] (http://plnkr.co/edit/KbLOIRKHK5PdEIPvBCFV?p=preview). Или я что-то не понимаю ... –

+0

Я обновляю свое «решение» –

+0

@JulienMeyer Я вижу - вы тоже хотели бы установить флаг действительности, правильно? Это звучит разумно, не стесняйтесь открывать проблему для этого в https://github.com/angular-ui/bootstrap/issues?state=open –

Смежные вопросы