|
|
Il codice completo di questa sezione è disponibile in Appendix 3 in GitHub.
|
|
Funzione
|
Descrizione
|
Codice
|
||
|---|---|---|---|---|
|
addToCart
|
Aggiunge al carrello le parti selezionate. Questa funzione viene creata come funzione indipendente.
|
Completare la procedura descritta di seguito:
1. Sotto la funzione hilite, inizializzare il parametro di applicazione cartLabel semplicemente con Cart.
Questo è il testo iniziale dell'etichetta labelCart e cambia man mano che vengono aggiunti elementi al carrello. Inoltre, inizializzare un oggetto vuoto denominato cart. Aggiungere quanto segue sotto la funzione hilite:
$scope.app.params.cartLabel = "Cart"; // set cartLabel app parameter to be "Cart". This will bind to the Text property for the labelCart label 2. Avviare la funzione addToCart. Viene creata e inizializzata una variabile denominata cartItem per fungere da valore della proprietà in cart uguale alla parte attualmente selezionata.
La prima volta che si seleziona una parte, questa proprietà non è definita perché il carrello è stato inizializzato come oggetto vuoto.
Se la selezione corrente non è ancora stata aggiunta all'oggetto cart, altrimenti chiamata undefined, cartItem viene completato con i parametri di applicazione itemCount, itemNumber, itemName e priceInfo per la parte selezionata.
Tutti questi parametri di applicazione vengono impostati come valori di proprietà nell'oggetto cartItem. Se l'elemento è già stato aggiunto al carrello una volta, l'unica proprietà in cartItem che cambia è il parametro itemCount che aumenta di 1 poiché un'altra istanza della stessa parte è stata aggiunta al carrello.
Dopo questa istruzione if, l'oggetto cartItem e le relative proprietà vengono aggiunti all'oggetto cart. Questo processo aiuta a distinguere tra le diverse parti che vengono aggiunte al carrello.
Aggiungere quanto riportato di seguito dopo $scope.cart = {}; // declare empty object called cart:
// 3. Inizializzare altre variabili per la funzione. cartItemAmount è utilizzata per contare il numero di elementi nel carrello, cartContents è inizializzata come matrice vuota per includere il contenuto del carrello e cartPrice è il prezzo totale degli oggetti nel carrello. Aggiungere quanto riportato di seguito dopo $scope.cart[$scope.currentSelection] = cartItem;:
// 4. Si utilizza un loop for per eseguire il loop di ogni elemento presente nel carrello e verificare le condizioni riportate di seguito.
itm è la variabile che effettua il conteggio per il loop. In questo loop, la proprietà count dell'oggetto corrispondente alla parte selezionata viene aumentata ogni volta che viene aggiunta al carrello un'altra istanza della parte.
Inoltre, la variabile cartPrice per il prezzo nel carrello aumenta in base alla proprietà prc dell'elemento selezionato.
Quando un elemento viene aggiunto al carrello, il prezzo aumenta in base al prezzo della parte moltiplicato per il numero di parti aggiunte.
Utilizzando il metodo .push, il nome (tag), la quantità (count) e il prezzo (prc) dell'oggetto selezionato vengono inseriti nella matrice cartContents. La matrice cartContents viene quindi impostata in modo che sia uguale al parametro di applicazione cart.
Aggiungere il seguente codice dopo var cartPrice = 0;:
// 5. Nell'ultima parte della funzione addToCart è necessario modificare il testo dell'etichetta labelCart aggiungendo un valore al parametro di applicazione cartLabel.
Aggiungere il seguente codice dopo $scope.app.params.cart = cartContents;:
// |
||
|
clearCart
|
Questa funzione azzera il carrello quando si fa clic sul pulsante clearButton. Questa funzione imposta il parametro di applicazione per cart come matrice vuota, imposta l'oggetto cart come vuoto e reimposta la proprietà Testo del pulsante labelCart su Cart senza prezzo totale tramite il parametro di applicazione cartLabel.
|
Aggiungere il seguente codice dopo la funzione addToCart:
// |
||
|
hiliteOff
|
Questa funzione rimuove lo shader dal modello quando il popup viene chiuso. La funzione hiliteOff viene creata nell'API PTC al di sotto del punto in cui lo shader viene aggiunto alla parte.
|
Aggiungere il codice seguente direttamente sotto $scope.hilite([$scope.currentSelection], true);
// |
||
|
disassemble
|
Anche la funzione disassemble viene creata nell'API PTC e viene utilizzata per aggiungere funzionalità al pulsante Disassemble nel popup. Utilizza la stessa logica di playButton e attiva il listener dell'evento sequenceloaded quando viene impostata la sequenza del modello.
|
Aggiungere il codice seguente direttamente sotto la funzione hiliteOff appena creata:
// |