我正在使用 typeahead 的 UI Bootstrap 组件,我想强制选择来验证我的表单。
是否可以将其配置为在typeahead-editable
设置为 false 并且用户输入“错误”值时将输入设置为无效,或者我应该为此编写指令(但如何)?
我正在使用 typeahead 的 UI Bootstrap 组件,我想强制选择来验证我的表单。
是否可以将其配置为在typeahead-editable
设置为 false 并且用户输入“错误”值时将输入设置为无效,或者我应该为此编写指令(但如何)?
来自http://angular-ui.github.io/bootstrap/的typeahead
指令已经支持将输入限制为匹配项(换句话说,人们可以绑定到仅在 typeahead 弹出窗口中作为匹配项可用的模型值)。您可以通过简单地设置属性来做到这一点。typeahead-editable='false'
请注意,将此属性设置为false
不会阻止人们输入无效值。它只会确保相应的输入被标记为无效,并且提供的值未绑定到模型。
代表 OP 回答:
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;
});
}
};
});