Angular 角度2输入范围最小变量

Angular 角度2输入范围最小变量,angular,forms,typescript,input,min,Angular,Forms,Typescript,Input,Min,所以我有一个问题: <form [formGroup]="myForm" > <input autocomplete="off" type="text" name="number" formControlName="number" min="{{ FinalPaymentPrice}}"/> // This FinalPaymentPrice is a number which I get and whant to set. For example 2 and the

所以我有一个问题:

<form [formGroup]="myForm" >  
<input autocomplete="off" type="text" name="number" formControlName="number" min="{{ FinalPaymentPrice}}"/> // This FinalPaymentPrice is a number which I get and whant to set. For example 2 and then 14 and so on
</form>
问题是我的最小输入是可变的。这个想法是,你得到一些价格,你不能输入更少,只有更高的价格。如果我真的喜欢这个函数,但这是不对的

export class PaymentComponent {
    myForm = new FormGroup({
        'number': new FormControl(null, [
            Validators.required,
            Validators.min(2)
        ])
    });

我对Angular非常陌生。

您可以通过以下方式更新任何事件的验证器:

this.myForm.controls['number'].setValidators([Validators.required, Validators.min(this.x)]);
this.myForm.get('number').updateValueAndValidity();
此.x可以根据您的需要进行更改,但每次x发生变化时,事件都必须更新控件的验证程序

您可以通过这种方式清理验证器

this.myForm.get('number').clearValidators();
this.myForm.get('number').updateValueAndValidity();
示例

下面是验证器静态变化的示例:

但您可以更动态地更改最小值验证器(即使用订阅)


快乐编码

您可以通过以下方式更新任何事件的验证器:

this.myForm.controls['number'].setValidators([Validators.required, Validators.min(this.x)]);
this.myForm.get('number').updateValueAndValidity();
此.x可以根据您的需要进行更改,但每次x发生变化时,事件都必须更新控件的验证程序

您可以通过这种方式清理验证器

this.myForm.get('number').clearValidators();
this.myForm.get('number').updateValueAndValidity();
示例

下面是验证器静态变化的示例:

但您可以更动态地更改最小值验证器(即使用订阅)

快乐编码

这工作很好 HTML:

这工作很好 HTML:


如果我正确理解您的问题,在您的情况下,最小输入值应该是2

在这种情况下,您应该将输入类型设置为数字,而不是文本


i、 e,
而不是

如果我正确理解您的问题,在您的情况下,最小输入值应该是2

在这种情况下,您应该将输入类型设置为数字,而不是文本


i、 e,
而不是

我认为如果您使用的表单控件不在信号引号中,您在“数字”是字符串上犯了错误这是故意的,因为它添加了货币和其他符号我认为如果您使用的表单控件不在信号引号中,您在“数字”是字符串上犯了错误这是故意的,因为它增加了货币和其他符号哦。。。我应该把这个放在哪里?进入'myForm=newformgroup({…`?哦…我应该把这个放在哪里?进入'myForm=newformgroup({…`?不是我要找的,先生。我会编辑问题,以澄清我的意思不是我要找的,先生。我会编辑问题,以澄清我的意思。这个答案是针对修改前的问题,其中2是硬编码的最小值。不,你理解错了。我编辑问题是为了更清楚。这个答案是针对问题在修改之前,它有2作为硬编码的最小值。不,你理解错了。为了更清楚,我编辑了这个问题。
this.myForm = new FormGroup({
      number: new FormControl(null, [
        Validators.required,
        Validators.minLength(2)
      ])
    });