繁体   English   中英

运行 ng build --output-hashing=all --prod 时,类型“AbstractControl”上不存在属性“controls”

[英]Property 'controls' does not exist on type 'AbstractControl' while running ng build --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>

表单组

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM