【发布时间】:2019-08-25 15:25:00
【问题描述】:
使用[(ngModel)],我设法根据选定的下拉菜单设置输入值,但在使用ng build --configuration=prod 编译时出现错误,显示错误是
类型“any[]”上不存在属性“name”
类型“any[]”上不存在属性“值”
当我使用ng serve 编译时,没有错误,这是我创建的stackblitz 以及到目前为止我尝试过的内容,
打字稿文件:
savedCards = [];
selectedCard = '';
selectDropdownCard(card) {
this.savedCards.find((item) => item.id === card.id) ?
this.savedCards = this.savedCards.filter((item) => item.id === card.id) :
this.savedCards = [card];
this.show = false;
this.hasSelected = true;
this.selectedCard = card;
}
HTML 文件
<div class="div1" (click)="selectSavedCard()" [(ngModel)]="selectedCard" ngDefaultControl>
<div *ngIf='!hasSelected'>
<div>
<p>dropdown</p>
</div>
</div>
<div *ngFor="let card of savedCards">
<div>
<p>{{card.viewValue}}</p>
</div>
</div>
</div>
<div class="div2" *ngIf="show">
<div *ngFor="let card of savedCreditCards" (click)="selectDropdownCard(card)">
<div>
<p>{{card.viewValue}}</p>
</div>
</div>
</div>
<input placeholder="id" [(ngModel)]="selectedCard.id" type="text">
<input placeholder="viewValue" [(ngModel)]="selectedCard.viewValue" type="text">
<input placeholder="name" [(ngModel)]="selectedCard.name" type="text">
<input placeholder="value" [(ngModel)]="selectedCard.value" type="text">
如果我尝试添加接口并将其用作类型,在ng build --configuration=prod 上我没有错误,但在ng serve 上显示错误:
TypeError: 无法读取未定义的属性“值”
我可以使用一些指导和建议,因为我不知道如何解决这个问题。
【问题讨论】:
-
您应该始终创建一个类及其对象,以便更好地进行编码练习。因为
any类型的对象意味着任何东西,只是任何东西。 -
我在显示的代码中没有看到 cardHolder。它在哪里?
-
@ShravilPotdar 即使我创建了类我仍然在 ng serve 上遇到错误
-
@PankajShukla 明白了,我的错,应该是“价值”
-
您的问题现在解决了吗?
标签: angular typescript compiler-errors production angular-aot