2017-07-08 7 views
1

イオン性物質3を貯蔵しています。イオン性物質3(貯蔵)

まず、私はapp.module.tsでストレージをインポート

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

imports: [ 
IonicStorageModule.forRoot() 
] 

私はストレージを使用してカートにあらゆる製品に追加するeコマース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); 

商品はカートに数量を表示しています。

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'で記憶値が再び私は値私は、私は、製品ページに行き別のproduct.soを必要とし、製品を追加products

を設定して削除します。

しかし、私の結果は

[ 
    { 
     '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

ur replyさん、ありがとうございます。商品ページに表示されている商品のリストがあります。また、私の質問がわからない – 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

ur患者さんありがとうございます。私は疑問を持っています。私の質問は、配列の値が既に配列値であり、長さが3であることです。 – ANISUNDAR

+0

あなたはすでにアイテムをthis.itemsにプッシュしています。 – vaibhavmaster

+0

ありがとうございます。私の問題は修正されました。しかし別の問題があります。カートに商品を追加してください。 – ANISUNDAR

関連する問題