属性"控件"在运行 ng build 时在类型"AbstractControl"上不存在 --output-hashing=all --prod



运行ng build --output-hashing=all --prod时,类型"AbstractControl"上不存在属性"controls",但对于ng build,一切正常

我有以下表格组

export class TestCenterLocationStep2Component extends BaseFormComponent<any> implements OnInit {
this.$form = this.fb.group({
email: [this.step2.email || '', [Validators.required, Validators.email, Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$')]],
phone: [this.step2.phone || ''],
configuration: this.fb.group({

sessionOpenDays: [this.step2.configuration.sessionOpenDays || '', Validators.required],
sessionOpenHours: [this.step2.configuration.sessionOpenHours || '', Validators.required],
sessionOpenMinutes: [this.step2.configuration.sessionOpenMinutes || '', Validators.required],

sessionCloseDays: [this.step2.configuration.sessionCloseDays || '', Validators.required],
sessionCloseHours: [this.step2.configuration.sessionCloseHours || '', Validators.required],
sessionCloseMinutes: [this.step2.configuration.sessionCloseMinutes || '', Validators.required],

applicationExpiryDays: [this.step2.configuration.applicationExpiryDays || '', Validators.required],
applicationExpiryHours: [this.step2.configuration.applicationExpiryHours || '', Validators.required],
applicationExpiryMinutes: [this.step2.configuration.applicationExpiryMinutes || '', Validators.required],

paymentCloseDays: [this.step2.configuration.paymentCloseDays || '', Validators.required],
paymentCloseHours: [this.step2.configuration.paymentCloseHours || '', Validators.required],
paymentCloseMinutes: [this.step2.configuration.paymentCloseMinutes || '', Validators.required]
})
});
}

HTML

<form [formGroup]="$form" (ngSubmit)="onFormSubmit()" *ngIf="$form" novalidate>
<div class="mt-3" formGroupName="configuration">
<div class="form-group row w-100 pr-5">
<label for="sessionOpenDays"
class="col-sm-5 col-form-label">Days</label>
<div class="col-sm-7">
<select class="form-control" id="sessionOpenDays"
formControlName="sessionOpenDays"
[class.is-invalid]="(!$form.controls.configuration.controls.sessionOpenDays.valid && $form.controls.configuration.controls.sessionOpenDays.touched) || (!$form.controls.configuration.controls.sessionOpenDays.valid && validate)">
<option value="" disabled></option>
<option *ngFor="let item of days" [ngValue]="item">{{item}}
</option>
</select>
<div class="invalid-feedback"
*ngIf="(!$form.controls.configuration.controls.sessionOpenDays.valid && $form.controls.configuration.controls.sessionOpenDays.touched) || (!$form.controls.configuration.controls.sessionOpenDays.valid && validate)">
Required</div>
</div>
</div>
</div>
</form>

FormGroup

export abstract class BaseFormComponent<T> {
@Output() $form: FormGroup;
}

作为获取异常

src/app/testCentres/test-centre-locations/test-center-location-step2/test-center-location-step2.component.html(58,53): Property 'controls' does not exist on type 'AbstractControl'.

然而,在运行命令ng build --output-hashing=all --prod时,对于ng构建,一切正常

更改后

[class.is-invalid]="(!$form.controls.configuration.controls.sessionOpenDays.valid && $form.controls.configuration.controls.sessionOpenDays.touched) || (!$form.controls.configuration.controls.sessionOpenDays.valid && validate)"
<div class="invalid-feedback"
*ngIf="(!$form.controls.configuration.controls.sessionOpenDays.valid && $form.controls.configuration.controls.sessionOpenDays.touched) || (!$form.controls.configuration.controls.sessionOpenDays.valid && validate)">
Required</div>

[ngClass]="{'switchError': (!$form.get('configuration').get('idTypesAccepted').valid && $form.get('configuration').get('idTypesAccepted').touched) || (!$form.get('configuration').get('idTypesAccepted').valid && validate)}"

<div class="text-danger" style="font-size: 12px;"
*ngIf="(!$form.get('configuration').get('idTypesAccepted').valid && $form.get('configuration').get('idTypesAccepted').touched) || (!$form.get('configuration').get('idTypesAccepted').valid && validate)">
At least one must be selected</div>

最新更新