预先输入时设置输入无效

我正在使用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不会阻止人们键入无效值。 它只会确保将相应的输入标记为无效,并且提供的值不会绑定到模型。

链接地址: http://www.djcxy.com/p/77919.html

上一篇: Set input invalid when typeahead

下一篇: Which is preferable controller or link function in AngularJS directives?