html - Angular 指令不适用于输入类型 ="number"

标签 html angularjs directive

我有一个如下所示的输入:

<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;
            }

        });
    }
};
});

最佳答案

为什么不尝试使用已经存在的 [min="{string}"] 指令?

http://docs.angularjs.org/api/ng.directive:input.number

关于html - Angular 指令不适用于输入类型 ="number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14680212/

相关文章:

html - 当我将它们悬停时,菜单项会移动

javascript - AngularJS 拖放

AngularJS 使用指令来阻止其他指令执行

assembly - ARM 汇编中.equation 和.word 之间的区别?

php - 只选择一个单选按钮,但由于 PHP 的原因,它们不能具有相同的名称

javascript - jQuery Mobile range Slider 输入框对齐

javascript - 如何在 JavaScript 中将 id 放入警报中

javascript - Angular-如何在点击时播放YouTube视频

javascript - Angular Material - 如何将自定义指令属性附加到 md-list-item 元素?

html - http-equiv Cache-Control 和 Pragma 指令是否有符合 HTML5 的替代方案?