我正在使用Ionic App,因为我正在设置并获取购物车中产品的价值,这意味着购物车中的产品数量,但是当我刷新或重新打开该应用程序时,它最初设置为零。 / p>
这是我的服务> cartservice.ts :
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
@Injectable()
export class CartProvider {
subject = new Subject<any>();
constructor(public http: HttpClient, public storage: Storage) {}
public setCart(cart: any) {
this.subject.next({ cart: cart });
}
public getCart(): Observable<any> {
return this.subject.asObservable();
}
在这个ts文件中,我做了2个用于设置和获取功能。
这是我的 cart.ts :
cartItems: any[] = [];
loadCartItems() {
this.cartService
.getCartItems()
.then(val => {
this.cartItems = val;
this.cartService.setCart(this.cartItems.length);
})
.catch(err => {});
}
在此ts文件中,我设置了购物车中产品数量的值。
这是我的 app.component.ts :
cartLength: number = 0;
constructor(public platform: Platform, public statusBar: StatusBar,
public splashScreen: SplashScreen, public events: Events,
private storage: Storage, public restProvider: RestapiProvider,
private cartService: CartProvider) {
this.cartService.getCart().subscribe(data => {
this.cartLength = data.cart;
});
}
在这个ts文件中,我得到的是产品数量值。
这是我的 app.html :
<ion-icon name="cart" class="myicon22" (click)="cardpage2()"><ion-badge class="mynewicon11" color="danger">{{cartLength}}</ion-badge></ion-icon>
在此html中,我显示了产品数量值。
一切正常,但问题是当我刷新或重新打开我的应用程序时,其值最初设置为0,而当我移至购物车页面时,它采用的是购物车中可用产品数量的值
我希望将其设置为购物车中可用产品的数量,而不是在用户刷新或重新打开应用程序时设置为0。
非常感谢您的帮助。
答案 0 :(得分:1)
尝试一下:
在您的服务中> cartservice.ts:
public setCart(cart: any) {
this.subject.next({ cart: cart });
this.storage.set("CARTNU", cart);
}
public getCart(): Observable<any> {
return this.subject.asObservable();
}
此代码将在刷新页面时设置值,并在设置页面时更新值。这解决了我的问题。