如何解决运行ng build --output-hashing = all --prod时,类型'AbstractControl'上不存在属性'controls'
在运行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 || '',sessionopenMinutes: [this.step2.configuration.sessionopenMinutes || '',sessionCloseDays: [this.step2.configuration.sessionCloseDays || '',sessionCloseHours: [this.step2.configuration.sessionCloseHours || '',sessionCloseMinutes: [this.step2.configuration.sessionCloseMinutes || '',applicationExpiryDays: [this.step2.configuration.applicationExpiryDays || '',applicationExpiryHours: [this.step2.configuration.applicationExpiryHours || '',applicationExpiryMinutes: [this.step2.configuration.applicationExpiryMinutes || '',paymentCloseDays: [this.step2.configuration.paymentCloseDays || '',paymentCloseHours: [this.step2.configuration.paymentCloseHours || '',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 build来说,一切都很好
解决方法
更改后
[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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。