Eliminare i record di dati in un'applicazione Web Oracle JET
Introduzione
Questa esercitazione descrive come utilizzare l'applicazione Web Oracle JavaScript Extension Toolkit (Oracle JET) per eliminare un record di dati esistente e sottomettere la modifica a un servizio REST.
Obiettivi
Al termine di questa esercitazione, verrà descritto come eliminare un record di dati esistente e sottomettere la modifica a un servizio REST.
Prerequisiti
- Un ambiente di sviluppo impostato per creare applicazioni Oracle JET con runtime JavaScript, Node.js e l'interfaccia della riga di comando Oracle JET più recente installata
- Completamento dell'esercitazione precedente in questo percorso di apprendimento, in modo da creare la cartella
JET_Web_Applicationcon un provider di dati REST per recuperare i dati - Facoltativamente, l'applicazione completata jet_rest_crud_application_final.zip è stata scaricata
Task 1: Crea un pulsante Elimina nella vista
-
Passare alla directory
JET_Web_Application/src/ts/viewse aprire il filedashboard.htmlin un editor. -
Trovare l'elemento
oj-button id="updateButton"e aggiungere un elementooj-buttonsottostante. Impostare l'attributoon-oj-actionsu"[[deleteItem]]"e l'attributodisabledsu"[[!itemSelected()]]".<oj-bind-if test="[[activitySelected()]]"> . . . <oj-button id="createButton" on-oj-action="[[showCreateDialog]]">Create</oj-button> <!-- If itemSelected is set to false, disabled is true, and vice versa. --> <oj-button id="updateButton" disabled="[[!itemSelected()]]" on-oj-action="[[showEditDialog]]">Update</oj-button> <oj-button id="deleteButton" disabled="[[!itemSelected()]]" on-oj-action="[[deleteItem]]">Delete</oj-button> <oj-list-view id="itemsList" . . . -
Salvare il file
dashboard.html.Il codice dovrebbe risultare simile al file final-delete-dashboard-html.txt.
Task 2: Gestione eliminazione record in ViewModel
Utilizzare l'API Fetch e il metodo HTTP DELETE per eliminare un record dal servizio REST. Utilizzare il metodo mutate di RESTDataProvider per aggiornare l'istanza RESTDataProvider.
-
Passare alla directory
JET_Web_Application/src/ts/viewModelse aprire il filedashboard.tsin un editor. -
All'interno della classe
DashboardViewModel, sotto il codice precedente che aggiorna i record, creare un metodo denominatodeleteItem.. . . public updateItemSubmit = async (event: ojButtonEventMap["ojAction"]) => { . . . }; public deleteItem = async (event: ojButtonEventMap["ojAction"]) => { }; -
Nel metodo
deleteItemcreato, dichiarare una variabilecurrentRowe utilizzare un'istruzioneifper confermare che un elemento è stato selezionato.public deleteItem = async (event: ojButtonEventMap["ojAction"]) => { const currentRow = this.selectedRow; if (currentRow != null) { } }; -
Aggiungere un'altra istruzione
ifper controllare la conferma dell'utente, quindi aggiungere il codice per inviare una richiesta di eliminazione dell'elemento selezionato al servizio REST e infine aggiornare l'istanzaRESTDataProvider.public deleteItem = async (event: ojButtonEventMap["ojAction"]) => { let itemID = this.firstSelectedItem().data.id; const currentRow = this.selectedRow; if (currentRow != null) { let really = confirm("Are you sure you want to delete this item?"); if (really) { // Create and send request to delete row on REST service const request = new Request( `${this.restServerURLItems}${itemID}`, { method: "DELETE" } ); const response = await fetch(request); // Create remove mutate event and call mutate method // to notify data-provider consumers that a row has been // removed if (response.status === 200) { const removedRowKey = itemID; const removedRowMetaData = { key: removedRowKey }; this.itemsDataProvider.mutate({ remove: { data: [itemID], keys: new Set([removedRowKey]), metadata: [removedRowMetaData], }, }); this.itemsDataProvider.refresh(); } else { alert("Delete failed with status " + response.status + " : " + response.statusText) } } } }; // End deleteItem -
Salvare il file
dashboard.ts.Il codice dovrebbe risultare simile al file final-delete-dashboard-ts.txt.
Task 3: eseguire l'applicazione Web ed eliminare un record
-
Nella finestra del terminale eseguire l'applicazione Web.
$ ojet serve -
Nell'applicazione fare clic sull'attività Baseball, quindi fare clic sull'elemento SureFire Ball (Set di 4).
-
Fare clic sul pulsante Elimina. Viene visualizzata una finestra di conferma.
-
Fare clic su OK.
La sezione viene aggiornata e l'elemento è stato eliminato.
-
Chiudere la finestra o la scheda del browser in cui viene visualizzata l'applicazione Web in esecuzione.
-
Nella finestra del terminale premere Ctrl+C e, se richiesto, immettere
yper uscire dal processo batch di strumenti Oracle JET.
Task 4: (facoltativo) Esecuzione di un'applicazione Web da un'applicazione ripristinata
Se si desidera eseguire l'applicazione Web Oracle JET completata dal codice fornito, è possibile ripristinare l'applicazione dal file di archivio scaricato. Per utilizzare un'applicazione Oracle JET "stripped and zipped", è necessario ripristinare le dipendenze del progetto, compresi gli strumenti Oracle JET e le librerie e i moduli richiesti, all'interno dell'applicazione estratta.
-
Scaricare il file
jet_rest_crud_application_final.ziped estrarre il contenuto dell'applicazione completata nella cartellajet_rest_crud_application_final. -
Nella finestra del terminale, accedere alla cartella
jet_rest_crud_application_finale ripristinare l'applicazione Web Oracle JET.$ ojet restore -
Attendere la conferma.
Success: Restore completeL'applicazione è pronta per essere eseguita.
-
Eseguire l'applicazione Web ed eseguire il test nel browser.
$ ojet serve -
Chiudere la finestra o la scheda del browser in cui viene visualizzata l'applicazione Web in esecuzione.
-
Nella finestra del terminale premere Ctrl+C e, se richiesto, immettere
yper uscire dal processo batch di strumenti Oracle JET.
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di apprendimento gratuito sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare il sito Oracle Help Center.
Delete data records in an Oracle JET web app
F49669-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.