Угловой материал - ввод числа - разрешить 0 - PullRequest
0 голосов
/ 05 мая 2018

Я использую этот код в своем HTML, чтобы можно было указывать числа от 0 до бесконечности:

<mat-input-container class="full-width-input" style="margin-left:5px;width:95%">
        <input matInput type="number" min="0" formControlName="ewBuild" required>
</mat-input-container>

в моем контроллере Angular я использую это:

ewBuild: new FormControl('', [Validators.required, Validators.minLength(1)]),

Нельзя давать 0, если я даю 1 или 2 ... это подтверждается с успехом, но не с 0. Что я могу сделать, чтобы разрешить также 0?

1 Ответ

0 голосов
/ 07 мая 2018

В валидаторе MinLength есть ошибка, которая сообщает, что длина равна нулю, если значение равно нулю. Смотрите здесь . Вам не нужен валидатор минимальной длины, когда он равен 1, потому что он в основном такой же, как требуется. Я не могу думать ни о какой причине использовать минимальную длину с числовыми входами. Вам потребуется , чтобы реализовать средство проверки минимального значения, поскольку свойство min для ввода не используется для проверки. Что-то вроде:

minValueValidator(minValue: number): ValidatorFn {
    return (control: AbstractControl): { [key: string]: any } => {
        const valid = control.value >= minValue;
        return valid ? null : { 
            'minValue': { 
                'minimum': minValue, 
                'entered': control.value 
            } 
        };
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...