angular – 具有动态值的最大值验证器

前端之家收集整理的这篇文章主要介绍了angular – 具有动态值的最大值验证器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个服务,它返回一个代表用户资金的值,我希望用户能够进行等于或小于总金额的交易.我试过像这样使用max validation:

valid() {
        const form: FormGroup = this._fb.group({
          fond: ['',[Validators.required]],serie: ['',account: ['',[Validators.required,Validators.min(1)]],value: ['',subAccount: ['',Validators.min(1)]]
        });
        return form;
      }

但是它不起作用,似乎必须从头开始设置max()中的值,因此它将假设totalAmount为undefined.

解决方法

更新已修改的问题:

用这个:

value: ['',[
  Validators.required,Validators.min(1),(control: AbstractControl) => Validators.max(this.totalAmount)(control)
]]

您可以使用以下语法实现此目的:

(control: AbstractControl) => Validators.max(this.totalAmount)(control)

为什么?

>当您提供Validators.max(this.totalAmount)时,它会使用给定参数(this.totalAmount的当前值)创建验证函数,然后将其分配给表单控件.>使用胖箭头功能时,分配给窗体控件的是胖箭头定义本身.每次调用胖箭头函数时(在有效性检查期间),它会重新评估Validators.max(this.totalAmount)并使用this.totalAmount的当前值创建新的验证函数,从而使其成为动态的.

猜你在找的Angularjs相关文章