|
|
Den vollständigen Code für diesen Abschnitt finden Sie in Appendix 3 in GitHub.
|
|
Funktion
|
Beschreibung
|
Code
|
||
|---|---|---|---|---|
|
addToCart
|
Fügt die ausgewählten Teile zum Einkaufswagen hinzu. Diese Funktion wird als eigenständige Funktion erstellt.
|
Führen Sie die folgenden Schritte aus:
1. Initialisieren Sie unter der hilite-Funktion den Anwendungsparameter cartLabel, sodass er einfach "Cart" lautet.
Dies ist der Anfangstext in der Beschriftung labelCart, der sich ändert, wenn Artikel dem Einkaufswagen hinzugefügt werden. Initialisieren Sie außerdem ein leeres Objekt mit dem Namen cart. Fügen Sie Folgendes unter der hilite-Funktion hinzu:
$scope.app.params.cartLabel = "Cart"; // set cartLabel app parameter to be "Cart". This will bind to the Text property for the labelCart label 2. Starten Sie die addToCart-Funktion. Eine Variable mit dem Namen cartItem wird erstellt und initialisiert. Sie wird der Wert der Eigenschaft in cart sein, die dem derzeit ausgewählten Teil entspricht.
Bei der ersten Auswahl eines Teils ist diese Eigenschaft nicht definiert, da der Einkaufswagen als leeres Objekt initialisiert wurde.
Wenn die aktuelle Auswahl noch nicht zum Einkaufswagen-Objekt (auch undefined genannt) hinzugefügt wurde, wird cartItem mit den Anwendungsparametern itemCount, itemNumber, itemName und priceInfo gefüllt.
Alle diese Anwendungsparameter werden als Eigenschaftswerte im Objekt cartItem festgelegt. Wenn der Artikel bereits einmal dem Einkaufswagen hinzugefügt wurde, ist die einzige Eigenschaft in cartItem, die sich ändert, der Parameter itemCount. Dieser erhöht sich um 1, weil eine weitere Instanz desselben Teils zum Einkaufswagen hinzugefügt wurde.
Nach dieser if-Anweisung werden das Objekt cartItem und dessen Eigenschaften zum Einkaufswagen-Objekt hinzugefügt. Dieser Prozess hilft bei der Unterscheidung zwischen den verschiedenen Teilen, die dem Einkaufswagen hinzugefügt werden.
Fügen Sie Folgendes nach $scope.cart = {}; // declare empty object called cart hinzu:
// 3. Initialisieren Sie weitere Variablen für die Funktion. cartItemAmount wird verwendet, um die Anzahl der Elemente im Einkaufswagen zu zählen. cartContents wird als leeres Array initialisiert, das den Inhalt des Einkaufswagens enthält. cartPrice ist der Gesamtpreis der Objekte im Einkaufswagen. Fügen Sie Folgendes nach $scope.cart[$scope.currentSelection] = cartItem; hinzu:
// 4. Eine for-Schleife wird verwendet, um jeden Artikel im Einkaufswagen zu durchlaufen und die folgenden Bedingungen zu überprüfen:
itm ist die Zählvariable für die Schleife. In dieser Schleife wird die Eigenschaft count für das Objekt, das dem ausgewählten Teil entspricht, jedes Mal erhöht, wenn eine weitere Instanz des Teils zum Einkaufswagen hinzugefügt wird.
Außerdem erhöht sich die Preisvariable cartPrice basierend auf der Eigenschaft prc im Einkaufswagen für den ausgewählten Artikel.
Wenn ein Artikel zum Einkaufswagen hinzugefügt wird, erhöht sich der Preis um den Preis des Teils multipliziert mit der Menge der hinzugefügten Teile.
Mit der .push-Methode werden der Name (tag), die Menge (count) und der Preis (prc) des ausgewählten Objekts in das Array cartContents verschoben. Für das Array cartContents wird dann festgelegt, dass es gleich dem Einkaufswagen-Anwendungsparameter ist.
Fügen Sie den folgenden Code nach var cartPrice = 0; hinzu:
// 5. Der letzte Teil der addToCart-Funktion beinhaltet das Bearbeiten des Textes für die Beschriftung labelCart durch Hinzufügen eines Werts zum Anwendungsparameter cartLabel.
Fügen Sie den folgenden Code nach $scope.app.params.cart = cartContents; hinzu:
// |
||
|
clearCart
|
Diese Funktion löscht den Inhalt des Einkaufswagens, wenn auf die Schaltfläche clearButton geklickt wird. Diese Funktion legt fest, dass der Anwendungsparameter für "cart" ein leeres Array ist und dass das Objekt cart leer ist. Außerdem ändert es die Eigenschaft Text für die Schaltfläche labelCart, sodass diese unter Verwendung des Anwendungsparameters cartLabel auf Cart ohne einen Gesamtpreis zurückgesetzt wird.
|
Fügen Sie den folgenden Code nach der addToCart-Funktion hinzu:
// |
||
|
hiliteOff
|
Diese Funktion stellt sicher, dass der Shader beim Schließen des Popups aus dem Modell entfernt wird. Die hiliteOff-Funktion wird in der PTC API unten erstellt, wo der Shader zum Teil hinzugefügt wird.
|
Fügen Sie den folgenden Code direkt unter $scope.hilite([$scope.currentSelection], true); hinzu:
// |
||
|
disassemble
|
Die disassemble-Funktion wird auch innerhalb der PTC API erstellt und verwendet, um die Funktionalität zur Schaltfläche Disassemble im Popup hinzuzufügen. Sie verwendet dieselbe Logik wie für playButton und löst den Ereignis-Listener sequenceloaded aus, wenn die Sequenz des Modells festgelegt wird.
|
Fügen Sie den folgenden Code direkt unter der hiliteOff-Funktion hinzu, die Sie gerade erstellt haben:
// |