【发布时间】:2019-01-23 17:53:33
【问题描述】:
我正在开发 Ionic 电子商务应用程序,我在购物车中展示了具有尺寸的产品,有些产品有尺寸,有些没有尺寸,但问题是没有尺寸的产品正在显示购物车中的尺码标签。
这是我的 cart.html:
<p *ngIf="ifSize">Size: {{itm?.psize}}</p>
在这个视图中,我显示的是产品的尺寸。
这是我的 cart.ts:
import { CheckoutPage } from './../checkout/checkout';
import { Component, ChangeDetectorRef } from '@angular/core';
import { IonicPage, NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';
import { CartProvider } from "../../providers/cart/cart";
@IonicPage()
@Component({
selector: 'page-cart',
templateUrl: 'cart.html',
})
export class CartPage {
cartItems: any[] = [];
totalAmount: number = 0;
isCartItemLoaded: boolean = false;
isEmptyCart: boolean = true;
ifSize: boolean = true;
productCount: number = 1;
constructor(public navCtrl: NavController, public navParams: NavParams, private cartService: CartProvider, public loadingCtrl: LoadingController, private alertCtrl: AlertController, private cdr: ChangeDetectorRef) {
}
ionViewDidLoad() {
this.loadCartItems();
}
loadCartItems() {
let loader = this.loadingCtrl.create({
content: "Wait.."
});
loader.present();
this.cartService
.getCartItems()
.then(val => {
this.cartItems = val;
console.log(val);
if(val.psize === undefined)
{
this.ifSize = false;
}
if (this.cartItems.length > 0) {
this.cartItems.forEach((v, indx) => {
this.totalAmount += parseInt(v.totalPrice);
});
this.cdr.detectChanges();
this.isEmptyCart = false;
}
this.isCartItemLoaded = true;
loader.dismiss();
})
.catch(err => {});
}
}
在这个 ts 文件中,默认情况下它会显示所有产品的尺寸以及没有尺寸标签将隐藏的尺寸的产品。但问题是 console.log(val);就像一系列产品一样即将到来。这就是为什么我无法在数组中找到产品的大小,也无法对产品数组中的大小应用正确的条件。任何帮助深表感谢。 结果:
console.log(val);
【问题讨论】:
-
如果大小未定义时打印什么
-
@sunielkalwani。最初是真的。 ifSize: boolean = true;之后,如果它未定义。这将是错误的。
-
只需使用
Size: {{itm.psize}}
。你不需要为同一个工作有两个变量 -
@Eliseo。谢谢你的回答。
标签: angular ionic-framework ionic3