2017-07-07 9 views
0

イオン性液体2を保管しています。ionic 2 storageが正常に動作しません

私はEコマースアプリを開発しました。

カートに追加された商品があれば、商品を保管用に保管します。

は、ここに私の機能

//Add to cart 

    addItemToCarts(item) 
    { 

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

    } 

それが仕事だとも私はproducts長さを意味バッジの数が表示されています。

storage(products)長.Hereを取得し、私はcart.Usingにこのコードを任意の製品を削除し、再びストレージに設定されている場合は、私のコード

//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.I​​fはあるし、再び場合は長さが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

関連する問題