我有一个表单输入如下:

<input type="number" name="inputStageNumTeams" id="inputStageNumTeams"
 ng-model="s.numTeams" validate-greaterthan="2" required>

但是,由于某些原因,我的自定义指令validateGreaterthan没有正确运行。如果我将输入类型改为“文本”,它的工作就像一个魅力!如果可能的话,我想保持输入类型为数字。
以下是有关指令:
app.directive('validateGreaterthan', function() {
return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
        ctrl.$parsers.unshift(function(viewValue) {
            var number = attrs.validateGreaterthan;
            if (parseInt(viewValue) !== NaN) {
                scope.numberValid = ((viewValue && (parseInt(viewValue) >= number)) ? 'valid' : undefined);
            }

            if(scope.numberValid) {
                ctrl.$setValidity('number', true);
                return viewValue;
            } else {
                ctrl.$setValidity('number', false);
                return undefined;
            }

        });
    }
};
});

最佳答案

为什么不尝试使用已经存在的[MI=“{Stry}”]指令?
http://docs.angularjs.org/api/ng.directive:input.number

关于html5 - Angular Directive不适用于Input type =“number”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14680212/

10-09 23:16