2017-07-08 81 views
1

我使用離子3儲存。離子3帶儲存

首先,我導入存儲在app.module.ts

import { IonicStorageModule } from '@ionic/storage'; 

imports: [ 
IonicStorageModule.forRoot() 
] 

我開發電子商務app.If我使用的存儲添加到任何產品到購物車。

這是我購物車頁面的代碼。

<ion-row class="apply-coupon" *ngFor="let p of Cartproducts;let i=index"> 
<ion-col col-4> 
<img src="{{p.P_IMAGES[0].URL}}" alt="product2"> 
</ion-col> 
<ion-col col-8> 
<h1>{{p.P_TITLE}}</h1> 
<p class="subtitle">Subtitle</p> 
<p class="code">Code: 123</p> 
<div> 
<button (click)="cancel(i)">Cancel X</button> 
</div> 
</ion-col> 
</ion-row> 

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

項目是一個產品detail.and我已顯示購物車的數量。

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

    } 
    }); 

這裏是我的安慰值。

[ 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec', 
     'id':1 
    }, 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec' 
     'id':2 
    } 
] 

如果我需要刪除最後一個產品。

this.Cartproducts.splice(i, 1); 
console.log(this.Cartproducts); 
this.storage.remove('products'); 
this.storage.set('products',this.Cartproducts); 

這是我的安慰值。

[ 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec', 
     'id':1 
    } 
] 

我刪除'products'的存儲值我再次設定值products

我我需要另一個product.so我要的產品頁面並添加產品。

但我的結果是

[ 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec', 
     'id':1 
    }, 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec' 
     'id':2 
    }, 
    { 
     'Product_title':'Product name', 
     'Product desc':'product dec' 
     'id':3 
    } 
] 

,但實際上,我刪除未設置爲存儲爲什麼第二product.Did?

請諮詢我,

感謝

+0

很顯然,當你移動到產品頁面你沒有更新你的模型值其中你正在推動你的數據。可能是離子正在緩存應用程序性能 – vaibhavmaster

+0

謝謝你的答覆。我有產品頁面上顯示的產品清單。同樣,我不明白你的問題 – ANISUNDAR

+0

你也可以添加產品頁面添加代碼嗎? – vaibhavmaster

回答

3

嘗試

this.storage.get('products').then((data) => { 
    if(data == null) 
    { 
     data=[]; 
    } 
this.items=data;//re-initialize the items array equal to storage value 
this.items.push(item); 
this.storage.set('products',this.items); 
    }); 

,而不是

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

感謝您的患者。我有一個疑問。我的問題是項目已經是數組值,長度是3.爲什麼我再次推動陣列? – ANISUNDAR

+0

您已經將項目推送到this.items – vaibhavmaster

+0

謝謝。我的問題已修復。但我又遇到了另一個問題。如果將任何產品添加到購物車,有時候值不確定爲什麼? – ANISUNDAR