我正在制作一个以FormControl作为输入的组件。
在这个组件中,如果formControls值等于Validator.max()值,我想禁用一个按钮。
this.formC = this.fb.control( // formcontrol created in the parent component
maxValue,
[
Validators.max(maxValue),
Validators.min(1),
Validators.required
]); <!-- Button used in the child component -->
<button
mat-flat-button
color="accent"
[disabled]="maxValue" // here I´d like to get the Validators.max() value
(click)="increaseQuanity()"
>+</button>当然,我可以将最大值解析为一个@Input(),但我希望找到一种更优雅的方法。
发布于 2022-09-15 12:59:38
不能根据FormControl的值禁用按钮。根据它的.invalid属性禁用它。
所以你的验证器会照顾Max,以及Min和Required。如果其中任何一个被违反,FormControl就变成.invalid。如果FormControl是FormGroup的一部分,这也会变得无效。
因此,只需将禁用的绑定绑定到.invalid:
<button
mat-flat-button
color="accent"
[disabled]="formC.invalid" // here I´d like to get the Validators.max() value
(click)="increaseQuanity()"
>+</button>
希望这能有所帮助。如果我错过了什么,告诉我。
https://stackoverflow.com/questions/73731502
复制相似问题