2017-07-07 66 views
0

我使用离子2存储。离子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); 
    } 
    }); 

如果我删除任何产品在cart.Using这个代码,并再次设置为存储。

这里是我的代码

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.and徽章数量也为2

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

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

我不知道。

请告诉我,

谢谢。

+0

当你取消一个项目时,你更新'this.length'而不是'this.badge'。当你获得存储计数时,情况正好相反。但是,你说当你取消一个项目时,两个值都会被更新。我认为你没有分享足够的代码让我们看到整个画面。就像没有任何东西告诉我们,当你用'addItemToCarts'添加一个项目时,计数会被更新。我们错过了您的代码部分之间的链接。 – Kaddath

回答

0

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

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

感谢您的答复。但仍然没有解决这个问题。 – ANISUNDAR