2017-07-07 4 views
0

Ich verwende ionische 2 mit Speicher.ionic 2 Speicher funktioniert nicht richtig

Ich entwickelte eine E-Commerce-App.

Wenn ein Produkt in den Warenkorb gelegt wird, werde ich das Produkt im Speicher lagern.

Hier ist meine Funktion

//Add to cart 

    addItemToCarts(item) 
    { 

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

    } 

Es ist Arbeit und auch zeige ich das Abzeichen zählen, die products Länge bedeutet.

Get storage(products) Länge .Hier ist mein Code

//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); 
    } 
    }); 

Wenn ich jedes Produkt in der cart.Using diesen Code entfernen und wieder zu Aufbewahrungs-.

Hier ist mein Code

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); 
    } 

Beispiel Mein Warenkorb Seite Produkte Länge 3.Falls ist ich irgendein Produkt entfernen und die Länge 2.und Abzeichen Zahl 2.

auch wieder, wenn ich hinzufügen irgendein Produkt. Die Speicherproduktlänge ist 4 warum ?.

Aber eigentlich ist die Speicherprodukte Länge 3.Ist richtig?

Ich habe keine Ahnung.

mich freundlich beraten,

Dank.

+0

Wenn Sie einen Artikel abbrechen, aktualisieren Sie 'this.length', aber nicht' this.badge'. Wenn Sie Speicherplatz zählen, ist dies das Gegenteil. Sie sagen jedoch, dass beide Werte aktualisiert werden, wenn Sie ein Element abbrechen. Ich denke, dass Sie nicht genug Code für uns geteilt haben, um das ganze Bild zu sehen. Wie nichts sagt uns, dass die Anzahl aktualisiert wird, wenn Sie ein Element mit "addItemToCarts" hinzufügen. Uns fehlt die Verbindung zwischen Ihren Codeteilen. – Kaddath

Antwort

0

Ich denke, addItemToCarts hat ein Problem. Sie drücken Daten in in addItemToCarts Funktion und Sie entfernen Artikel aus Cartproducts Array in Cancel Funktion und Speicherung. Idealerweise sollte Ihre Funktion 'addItemToCarts' wie folgt aussehen.

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

Vielen Dank für Ihre Antwort. Aber immer noch nicht beheben Sie dieses Problem. – ANISUNDAR

Verwandte Themen