角反应形式-RxwebValidators conditionalExpression无法正常工作

时间:2020-08-04 10:38:09

标签: angular angular-reactive-forms angular-forms angular-validation

我正在尝试使用RxwebValidators包来实现条件必需的验证器。嵌套FormGroup并将这些嵌套的FormGroups作为@Inputs传递到子组件时,会发生问题。条件验证有效,但是只有在我使FormControl变脏之后才起作用,这意味着我在输入中输入了某些内容然后将其删除。只有这样,所需的FormControl才变为必需且无效,这不是我期望的行为。用户在firstName控件中输入“ John”后,应立即将其变为必需。我是否还缺少其他应做的事情或做错了什么?还是只是它如何工作?

这里有个问题。 https://stackblitz.com/edit/rxweb-conditional-required-validator-angular-reactive-fo-xjvfx6

感谢帮助!

1 个答案:

答案 0 :(得分:0)

这似乎是一个配置问题,因为我创建了一个新的角度项目并且它可以正常工作(即,在firstName更改时,它会更新lname的值和有效性)。

return this.fb.group({
  firstName: [null, [RxwebValidators.required()]],
  lastName: this.fb.group({
    lname: [null, [
      RxwebValidators.required({
        conditionalExpression: (x, y) => {
          console.log('change', x);
          return y.firstName === 'Brian';
        }
      })]]
  })
});