【发布时间】:2021-01-14 18:33:35
【问题描述】:
我有一个名为this.itemsArray 的对象数组。数组内的对象包含属性rate。 rate 是在用户输入值时使用 [(ngModel)] 设置的。
每当用户输入rate,我想显示下面的按钮。如果用户没有输入rate,那么我想隐藏按钮。
如果数组中只有 1 个项目(因此只有一个速率),则代码可以正常工作。当有多个项目(因此数组中有多个速率)时,问题就出现了。在这种情况下,问题在于仅当数组中的最后一项(速率)具有值时按钮才被隐藏。
每当数组中的任何比率为空白时,我都需要隐藏该按钮。我怎样才能做到这一点?
<div *ngFor = "let item of this.itemsArray; let i = index">
<button *ngIf = "this.itemsArray[i].rate" >Proceed</button>
</div>
【问题讨论】:
-
不要使用
let i = index,使用index as i。 angular.io/api/common/NgForOf -
另外,也不需要使用索引;你可以参考
item -
您使用的是哪个 Angular 版本?
-
我将
let i = index更改为index as i。我还将this.itemsArray[i].rate更改为item.rate,但仍然遇到同样的问题。我正在使用Angular: 10.1.0 -
预期的行为有点不清楚。假设您在数组中有两个项目,并且其中只有一个设置了速率。是否要显示该项目的按钮而不是其他项目的按钮?
标签: javascript arrays angular ngfor angular-ng-if