0

当我在 Angular 中进行 aot 构建时,出现错误“FormGroup”类型上不存在属性“第 1 节”。我添加了

<form [formGroup]="currentMonthForm" novalidate>
<table class="table spinwheel-table-blk">
      <thead>
        <tr COLSPAN=2 class="spinwheel-table-heading-block">
          <th>Section ID</th>
          <th><span>Points</span></th>
        </tr>
      </thead>
      <tbody>
        <tr COLSPAN=2>
          <td>1</td>
          <td>
            <div class="input-group wingsclub-inputgroup">
              <input type="text" class="form-control validation-field" placeholder="Points" aria-label="Recipient's username"
                aria-describedby="basic-addon2" maxlength="3" formControlName="section1" [ngClass]="{ 'is-invalid': currentMonthForm.section1 }"
                (input)="section1Change(1)">
              <small class="text-danger" *ngIf="sectionFormErrors.section1">
                <small class="text-danger" *ngIf="sectionFormErrors.section1">{{sectionFormErrors.section1}}</small>
              </small>
            </div>
          </td>
        </tr>
<table>

在组件中我有

currentMonthForm: FormGroup;
constructor(){
this.buildForm();
}
    buildForm() {
        this.currentMonthForm = this.fb.group({
          section1: [null, Validators.compose([Validators.required, Validators.maxLength(3),
          CustomValidators.number, this.validateNumber, CustomValidatorsInUse.isInteger, CustomValidatorsInUse.isPositiveInteger,])],})

但是我收到错误“FormGroup”类型上不存在属性“第 1 节”。在 aot 构建中。但总的来说,它可以正常工作。

4

1 回答 1

1

罪魁祸首似乎是这样的:

[ngClass]="{ 'is-invalid': currentMonthForm.section1 }"

JIT 编译器不会检查该属性是否真的存在于对象上,但 AOT 构建会检查并抱怨currentMonthFormFormGroup 没有该属性。你应该修复类的条件,is-invalid因为它目前很奇怪。我希望是这样的:

[ngClass]="{ 'is-invalid': currentMonthForm.get('section1').errors !== null }"
于 2018-11-09T08:40:07.940 回答