我想知道如何在angular2中设置最小和最大数字 当我们尝试限制输入文本时,我们必须非常简单 关于限制3个数字的数量的任何想法
它在类型文本上工作得很好,但是我想我们必须做一个指令
答案 0 :(得分:5)
Angular提供了一些 Validators ,例如 required , maxLength ..但您可以像这样创建自己的Validator:
function validateNumber(c: FormControl) {
return c.value > 0 && c.value < 100 ? null : {valid: false}
};
new FormControl('', validateNumber)
答案 1 :(得分:0)
您还可以创建一些指令来管理验证器。
HTML:
<input type="number" maxNumber="999"[(ngModel)]="element.orderItemNewCredit" #newCredit="ngModel">
<div *ngIf="newCredit.errors && (newCredit.dirty || newCredit.touched)" class="alert alert-danger">
<div [hidden]="!newCredit.errors.maxNumber">New credit cannot be superior than 999/div>
</div>
指令:maxNumberValidator.directive.ts
import {Directive, Input} from '@angular/core';
import {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator} from "@angular/forms";
@Directive({
selector: '[maxNumber]',
providers: [{provide: NG_VALIDATORS, useExisting: MaxNumberValidatorDirective, multi: true}]
})
export class MaxNumberValidatorDirective implements Validator {
@Input() maxNumber: number;
constructor() { }
validate(control: AbstractControl): ValidationErrors {
return control.value <= this.maxNumber ? null : { maxNumber: { valid: false } };
}
}
不要忘记将此指令添加到模块文件中。