0

我正在尝试为 aot build 编译我的代码,但我的 formArray 循环其控件时遇到了困难

 <div formArrayName="energyTips">
            <h3>Energy Saving Tips</h3>
            <div *ngFor="let energyTip of energyTips.controls; index as i" class="panel panel-default">
                <md-grid-list cols="12" rowHeight="80px">
                    <md-grid-tile colspan="12">
                        <md-input-container>
                            <input mdInput placeholder="Energy Tip" [formControlName]="i" type="text" required>
                            <md-error *ngIf="energyTips.at(i).hasError('required')">Please fill the energy saving tip details before adding another one</md-error>
                        </md-input-container>
                        <button *ngIf="i == (energyTips.controls.length - 1 )" class="circle-buttons" md-fab (click)="addEnergyTip($event,energyTip)" color="primary" [disabled]="energyTips.at(i).hasError('required')"><md-icon>add</md-icon></button><span *ngIf="addGreenScreenForm.controls.energyTips.controls.length > 1"><button class="circle-buttons" md-fab (click)="removeEnergyTip(i)" color="primary"><md-icon>remove</md-icon></button></span>
                    </md-grid-tile>
                </md-grid-list>
            </div>
        </div>

我不确定如何将这些部分重写 controls.lengthenergyTips.controlsaot 兼容代码。

4

1 回答 1

0

一些但不限于 AOT 提示:

  • 不要通过键(控件/错误)访问属性。而是通过使用 get()、hasError() 的方法访问来访问它们。
  • 把你的控件放在你的类中的一个函数/属性中,你需要什么,即
get energyTipsLength() {
    return this.energyTips.controls.length;
}
于 2017-08-08T18:53:58.563 回答