预先输入时设置输入无效
我正在使用typeahead的UI Bootstrap组件,我想强制选择来验证我的表单。 当'typeahead-editable'设置为false并且用户输入“bad”值或者我应该为此写入一个指令(但是如何?)时,是否可以配置它以将输入设置为无效?
谢谢
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; }); } }; });
在typeahead
从http://angular-ui.github.io/bootstrap/指令已经限制输入匹配支持(换句话说,人们可以结合作为预输入弹出匹配值只提供了示范)。 你可以通过简单地设置typeahead-editable='false'
属性来实现。
请注意,将此属性设置为false
不会阻止人们键入无效值。 它只会确保将相应的输入标记为无效,并且提供的值不会绑定到模型。
上一篇: Set input invalid when typeahead
下一篇: Which is preferable controller or link function in AngularJS directives?