ionic-framework - 无法在 Ionic 的 For 循环中正确设置变量
问题描述
我正在开发 Ionic 电子商务应用程序,我正在检查使用 0 或 1 的产品的缺货情况。
这是我的productdetails.ts:
outofstockp: boolean = false;
for(var k in this.detailsp.msg)
{
console.log(this.detailsp.msg[k].out_of_stock);
if(this.detailsp.msg[k].out_of_stock === "1")
{
this.outofstockp = true;
this.hassize = false;
}
}
其中,this.detailsp.msg
是包含产品的数组。所以,这就是我应用循环来检查产品outofstock的原因。console.log(this.detailsp.msg[k].out_of_stock);
给我 3 个输出 1、0 和 0,因为我有 3 个产品,但问题是它是this.outofstockp = true;
所有产品的座位。
这是我的productdetails.htm l:
<ion-col *ngIf="hassize" style="padding: 0px;">
<button [disabled]="!product.SelectedSize" class="mybtn11" (click)="addToCart(product)" ion-button small>
Add to Cart
</button>
</ion-col>
<ion-col *ngIf="outofstockp" style="padding: 0px;">
<button disabled class="mybtn11" ion-button small>
Out Of Stock
</button>
</ion-col>
在此,我使用了 2 个按钮,如果产品缺货,它将显示缺货按钮,否则将显示addtocart按钮。但问题是它显示所有产品的缺货按钮,因为我的状况运行正常。
任何帮助深表感谢。
解决方案
我认为在您的 ts 文件中包含此逻辑不是一个好主意。您可以在 html 文件中轻松处理此问题。假设您已经在模板(.html)中循环遍历产品数组,并且在每次迭代中您都会获得一个产品对象。由于您的 ts 文件表明您的产品对象有一个名为 out_of_stock 的属性,因此您可以直接在 html 中使用该属性。
像这样的东西,
<ion-col *ngIf="product.out_of_stock == '0'" style="padding: 0px;">
<button [disabled]="!product.SelectedSize" class="mybtn11" (click)="addToCart(product)" ion-button small>
Add to Cart
</button>
</ion-col>
<ion-col *ngIf="product.out_of_stock == '1'" style="padding: 0px;">
<button disabled class="mybtn11" ion-button small>
Out Of Stock
</button>
</ion-col>
如果您只想在 TS 文件中处理此问题,那么您需要考虑使用 Key,Value,其中您的 Key 将是您的产品 id 或产品对象,而 Value 将是一个包含 outofstockp,hassize 每个产品值的数组。但我建议你不要这样做,因为你有最简单的方法在模板中实现你的结果。
推荐阅读
- python - 如何将变量名称和函数的普通列表转换为 sympy 中命令的合适输入
- python - PyGame 正在冻结
- docker - 是否可以在由 docker 提供支持的容器中隔离模块内核?
- matlab - 图像单一背景颜色 - Matlab
- angular - NullInjectorError:没有 ChildrenOutletContexts 的提供者
- reactjs - 使用反应钩子在其他组件中获取数据
- python - 根据熊猫中另一列数据框的值添加一列
- php - 尝试使用 preg_match_all 匹配所有包含特定类的图像
- html - 无法强制 flex 列容器到全高
- javascript - 如何在 C#/asp.Net/Razor 中异步获取用户键盘输入