javascript - 如何在 Angular Reactive Forms 中做 required-if?

标签 javascript angular typescript angular-reactive-forms

我有一个 react 形式并基于属性 fooRequired我想将该字段设置为是否必填。
我无法更改它,因为它是在初始时设置的。那我该怎么办?

fooRequired = false;

form = new FormGroup({
 foo: new FormControl(null, [Validators.required])
});

toggle() { this.fooRequired = !this.fooRequired; }

最佳答案

以下将解决问题:

toggle() {
  this.fooRequired = !this.fooRequired;
  this.form.controls.foo.setValidators(this.fooRequired ? null : [Validators.required]);
  this.form.controls.foo.updateValueAndValidity();
}
这里,基于fooRequired bool 值,设置或删除验证器。最后,更新了新的表单控件设置。

关于javascript - 如何在 Angular Reactive Forms 中做 required-if?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64941941/

相关文章:

javascript - 访问器装饰器和实例化类上下文

javascript - Redux Store 和第三方数据结构

javascript - 使用 Typescript 在 React JS 中禁用文本框

javascript - 为益智游戏隐藏 Javascript

html - 模板驱动的表单将所有标记标记为已触摸 - Angular 7

html - 我正在尝试所有选定的数组来更改 Angular 4 的样式

Angular 2 : "Expected the operants to be of similar type or any" linting error

javascript - 使用 2 个数据属性定位 HTML 元素

angular - 订阅组件鼠标移动事件

javascript - Angular subject() 可观察,在不同的组件中不起作用