2016-08-30 4 views
0

Ich bin neu in eckigen js ich möchte wissen, wie man verhindern kann, dass Benutzer das gleiche Element mehr als einmal in den Warenkorb legen. Ich habe eine einfache Anwendung entwickelt Warenkorb i Probe Screenshot unten Bildschirm 1Wie kann verhindert werden, dass der gleiche Artikel zum Warenkorb hinzugefügt wird?

screen 1

Schirm 2

Screen 2

nachdem Sie die Daten klicken auf einen array.How weitergegeben werden kann i angeschlossen haben Verhindere, dass Benutzer dasselbe Element mehr als einmal hinzufügen, wenn ich ng-repeat verwendet habe, um Daten aus der json-Datei abzurufen.

+0

Sie sollten den Warenkorb-Artikel 'array' verwenden und prüfen, ob ein Warenkorb eine vordefinierte Produkt-ID hat oder nicht. Persönlich schlage ich vor, Benutzer so viele Produkte hinzufügen zu lassen, wie sie möchten. Wenn Ihr Code das gleiche Produkt wieder hinzufügt, können Sie die Menge um 1 erhöhen. Es ist für die bessere Benutzererfahrung :) – Vineet

+0

Der Benutzer sollte die Option haben, so viele Produkte desselben Typs hinzuzufügen, wie er möchte. Dazu können Sie eine Karte verwenden, die jedes Mal ein Paar (Schlüssel, Wert) hinzufügt, wenn der Benutzer auf die Schaltfläche "In den Warenkorb" klickt. Dann suchen Sie nach dem Schlüssel, und wenn es kein Element gibt, das dem Schlüsselwert entspricht, setzen Sie das Paar, sonst erhöhen Sie nur den Wert für diesen Schlüssel. – Justplayit94

+0

Erweitern zu @vineet - Sie können in_array() verwenden –

Antwort

0

Ich denke, dass Sie dies mithilfe von Logik ähnlich wie unten erreichen sollten;

$scope.addProduct = function(product){ 
    var isDuplicate = false; 
    for(var i=o;i<$scope.selectedProduct.length;i++){ 
     if(product.id == $scope.selectedProduct[i].id){ 
     isDuplicate =true; 
     break; 
     } 

    } 
    if(!isDuplicate){ 
     $scope.selectedProduct.push(product) 


    } 
} 
Verwandte Themen