#angularjs
Вопрос:
Мой расчет хорошо работает для значения с 3 цифрами и ниже. Например, item_amt = 250 250 даст результат 500. Но, когда дело доходит до 4 цифр и выше, это даст только одну цифру. Например, item_amt = 2500 2500 даст результат 1.
HTML:
<ion-card *ngFor = "let c of cart" class="item-card">
<ion-row float="right">
<ion-col size="2" offset="5">
<ion-button color="medium" fill="clear" (click)="removeCartItem(c)" class="btn-remove-item">
<ion-icon name="close-circle" slot="icon-only"></ion-icon>
</ion-button>
</ion-col>
</ion-row>
<ion-row><ion-label text-wrap>{{c.name}}</ion-label></ion-row><br/>
<ion-row>ITEM PRICE : <ion-label text-wrap>{{c.item_amount}}</ion-label></ion-row><br/>
<ion-row text-wrap>
QUANTITY :
<ion-item>
<ion-button color="medium" fill="clear" (click)="decreaseCartItem(c)">
<ion-icon name="remove-circle" slot="icon-only"></ion-icon>
</ion-button>
<div class="quantity-input">{{c.quantity}}</div>
<ion-button color="medium" fill="clear" (click)="increaseCartItem(c)">
<ion-icon name="add-circle" slot="icon-only"></ion-icon>
</ion-button>
</ion-item>
</ion-row>
</ion-card>
Ниже приведен контроллер:
increaseCartItem(product) {
this.cart.addProduct(product);
}
Ниже приведен расчет моей корзины.
addProduct(product) {
let added = false;
for (let p of this.cart) {
if (p.product_id === product.product_id) {
//console.log('P' p.item_amount);
//console.log(product.price);
p.item_amount = parseInt(p.item_amount) parseInt(product.price);
product.quantity = 1;
product.amount = 1;
added = true;
break;
}
}
if (!added) {
product.amount = 1;
this.cart.push(product);
}
this.cartItemCount.next(this.cartItemCount.value 1);
}
Я новичок в Angular JS. Пожалуйста, помогите мне. Спасибо.
Комментарии:
1. Создайте рабочий фрагмент
2. используйте отладчик и console.log() это поможет вам, скорее всего, ваш код, т. е. :
if (!added) { product.amount = 1; this.cart.push(product); }
загорается в нежелательном состоянии