加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 18:00:08 所属栏目:安全 来源:网络整理
导读:我有一个服务,它返回一个代表用户资金的值,我希望用户能够进行等于或小于总金额的交易.我试过像这样使用max validation: valid() { const form: FormGroup = this._fb.group({ fond: ['',[Validators.required]],serie: ['',account: ['',[Validators.requi
我有一个服务,它返回一个代表用户资金的值,我希望用户能够进行等于或小于总金额的交易.我试过像这样使用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的当前值创建新的验证函数,从而使其成为动态的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读