【发布时间】:2021-02-02 23:11:55
【问题描述】:
我检查了许多 Stackblitz 示例以进行 formArray 验证,并根据其他 formControl 值禁用了 formControl,并尝试使用相同的方法,但在我的表单中它没有应用相同的东西。
qty formControl 的验证不起作用,如果用户从选择中选择一个活动值,则应启用 fromControl qty,否则默认情况下应禁用它,这也无法正常工作。
我错过了什么?
这是我的Stackblitz 演示。
HTML 组件
<div formArrayName="dataCollection">
<div class="row" [formGroupName]="i" *ngFor="let element of data; let first = first; let i = index">
<div *ngIf="!first">----------</div>
<div formArrayName="sizes">
<ng-container [formGroupName]="j" *ngFor="let qtys of data[0].sizes; let j = index">
<div class="col">
<mat-form-field class="">
<input matInput type="text" formControlName="qty">
<!-- <p *ngIf="element['controls'].qty?.errors?.required">Qty is required</p>
<p *ngIf="element['controls'].qty?.errors?.pattern">Error pattern</p> -->
</mat-form-field>
<mat-form-field class="">
<mat-select placeholder="Status"
formControlName="statusMethod"
(selectionChange)="onSelectionChanged($event)">
<mat-option value="AC">Active</mat-option>
<mat-option value="IN">Deactive</mat-option>
</mat-select>
</mat-form-field>
</div>
</ng-container>
</div>
</div>
</div>
TS 组件
onSelectionChanged({value}) {
if (value === 'IN') {
this.dataForm.get('dataCollection').get('qty').disable();
} else {
this.dataForm.get('dataCollection').get('qty').enable();
}
}
【问题讨论】:
标签: angular validation angular-reactive-forms