离子2存储不能正常工作

时间:2017-07-07 10:18:46

标签: ionic-framework ionic2 ionic3

我正在使用离子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?为什么?

但实际上,存储产品的长度是3.对吗?

我什么都不知道。

请建议我,

感谢。

1 个答案:

答案 0 :(得分:0)

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

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