【问题标题】:Angular Material - number input - allow 0Angular Material - 数字输入 - 允许 0
【发布时间】:2018-05-05 04:39:23
【问题描述】:

我在我的 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?

【问题讨论】:

  • 这看起来像 angularjs
  • @Sajeetharan 这是 Angular,而不是 AngularJS。看到FormControl了吗?

标签: angular input angular-material


【解决方案1】:

MinLength 验证器中存在一个错误,如果值为零,则将长度报告为零。见here。当它为 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 
            } 
        };
    };
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 2023-03-17
    • 1970-01-01
    • 2022-10-18
    • 2018-01-11
    • 2018-05-27
    • 2012-10-08
    • 2015-07-01
    相关资源
    最近更新 更多