【问题标题】:ionic 2 storage does not work properlyionic 2 存储无法正常工作
【发布时间】:2017-07-07 19:53:53
【问题描述】:

我正在使用带有存储功能的 ionic 2。

我开发了一个电子商务应用程序。

如果有任何产品添加到购物车中,我将使用存储来存储产品。

这是我的功能

//Add to cart

   addItemToCarts(item)
   {

      this.items.push(item);
      this.storage.set('products',this.items);

   }

它的工作,我也显示徽章计数这意味着products 长度。

获取storage(products) 长度。这是我的代码

//Get cart Count

    this.storage.get('products').then((data) => {
     if(data != null)
     {
       this.badge='';
       this.badge=data.length;
       this.Cartproducts=data;
       console.log("data");
       console.log(data);
     }
    });

如果我删除购物车中的任何产品。使用此代码并再次设置为存储。

这是我的代码

cancel(i)
  {
    console.log(i);
    this.Cartproducts.splice(i, 1);
    var item=this.Cartproducts;
    this.length=this.Cartproducts.length;
    console.log(this.Cartproducts);
    this.storage.remove('products');
    this.storage.set('products',item);
  }

示例我的购物车页面产品长度为 3。如果我删除任何一种产品且长度为 2。徽章计数也是 2。

如果我再添加任何一个产品。存储产品长度是 4 为什么?

但实际上,Storage products的长度是3。对吗?

我不知道。

请多多指教,

谢谢。

【问题讨论】:

  • 当你取消一个项目时,你更新this.length而不是this.badge。当您获得存储计数时,情况恰恰相反。但是,您说当您取消一个项目时,两个值都会更新。我认为你没有分享足够的代码让我们看到整个画面。就像没有什么告诉我们,当您使用 addItemToCarts 添加项目时计数会更新。我们缺少您的代码部分之间的链接。

标签: ionic-framework ionic2 ionic3


【解决方案1】:

我认为addItemToCarts 有问题。您正在 addItemToCarts 函数中的 this.items 中推送数据,并且您正在从 Cancel 函数中的 Cartproducts 数组中删除项目并存储。理想情况下,您的函数“addItemToCarts”应如下所示。

//Add to cart
addItemToCarts(item)
{
  this.Cartproducts.push(item);
  this.storage.set('products',this.Cartproducts);
}

【讨论】:

  • 感谢您的回复。但仍然无法解决此问题。
猜你喜欢
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 2021-07-14
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2015-06-01
相关资源
最近更新 更多