每当我刷新Ionic App时,我的值都会重置为零

时间:2019-02-19 10:43:45

标签: angular ionic-framework ionic3

我正在使用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。

非常感谢您的帮助。

1 个答案:

答案 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();
  }

此代码将在刷新页面时设置值,并在设置页面时更新值。这解决了我的问题。