Associa i dati a un componente in un'applicazione Web Oracle JET
Introduzione
Questa esercitazione descrive come utilizzare un documento JSON locale nell'applicazione Web Oracle JavaScript Extension Toolkit (Oracle JET).
Oracle JET è un toolkit di sviluppo che fornisce una serie di classi di data provider per gestire i dati provenienti da varie origini. Nel file viewModel verrà popolata un'istanza di MutableArrayDataProvider con i dati letti da un file JSON, quindi associare l'istanza MutableArrayDataProvider agli elementi HTML personalizzati di Oracle JET nella vista.
Obiettivi
Al termine di questa esercitazione, verrà descritto come leggere i dati da un documento JSON in un provider di dati, aggiungere un componente Oracle JET List View e associare i dati al componente agli oggetti dati JSON.
Prerequisiti
- Un ambiente di sviluppo impostato per creare applicazioni Oracle JET con runtime JavaScript, Node.js e l'interfaccia della riga di comando della release Oracle JET più recente installata
- Completamento delle esercitazioni precedenti in questo percorso di apprendimento, in modo da creare la cartella
JET_Web_Application - store_data.json scaricato nella directory
JET_Web_Application/src/ts/
Task 1: scaricare il documento JSON ed esaminare i dati
- Scaricare il file
store_data.jsonnella directoryJET_Web_Application/src/ts/. - Aprire il file
store_data.jsonnel browser Web e visualizzare la struttura dei dati. Il filestore_data.jsoncontiene una lista di oggetti attività e le relative proprietà. Ogni attività include un array di elementi con proprietà proprie.
Task 2: Popolare un provider di dati in ViewModel
È possibile eseguire il push dei dati dal file JSON in un oggetto ojmutablearraydataprovider di Oracle JET.
-
Passare alla directory
JET_Web_Application/src/ts/viewModelse aprire il filedashboard.tsin un editor. -
Importare i dati dal file
store_data.jsonin modo che siano disponibili in ViewModel.import * as AccUtils from "../accUtils"; import * as ko from "knockout"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojselectsingle"; import "ojs/ojlabel"; import "ojs/ojchart"; import * as storeData from "text!../store_data.json"; -
Se non è presente, importare il modulo
ojmutablearraydataproviderda utilizzare per contenere i dati JSON.import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); -
Prima della classe
DashboardViewModel(), definire un alias di tipo,Activity, che include il campoiddi tiponumber.... type Activity = { id: number; } class DashboardViewModel { -
Nella classe
DashboardViewModel()aggiungere un tipo peractivityDataProviderche verrà creato nel passo successivo.class DashboardViewModel { val: ko.Observable<string>; . . . chartDataProvider: MutableArrayDataProvider<string, {}>; chartData: Array<Object>; activityDataProvider: MutableArrayDataProvider<Activity["id"], Activity>; . . . -
Nel metodo
constructrordella classeDashboardViewModel()creare un'istanza diMutableArrayDataProvider(activityDataProvider) e utilizzare il metodoJSON.parseper leggere nei dati JSON.constructor() { this.val = ko.observable("pie"); ... this.activityDataProvider = new MutableArrayDataProvider< Activity["id"], Activity >(JSON.parse(storeData), { keyAttributes: "id", }); . . . -
Importare il modulo componente Oracle JET List View.
import * as storeData from "text!../store_data.json"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojlistview";Il modulo
ojlistviewsupporta la vista nella sezione successiva di questa esercitazione. -
Salvare il file
dashboard.ts. Il filedashboard.tsdeve avere un aspetto simile a final-data-bind-dashboard-ts.txt.
Task 3: Associazione dei dati al componente vista elenco nella vista
L'elemento oj-list-view è un elemento HTML personalizzato Oracle JET con funzioni interattive che è una versione avanzata di un elenco HTML. Per fornire i dati all'elenco, associare la variabile activityDataProvider popolata in viewModel all'attributo data della vista elenco.
-
Passare alla directory
JET_Web_Application/src/ts/viewse aprire il filedashboard.htmlin un editor. -
Nel file
dashboard.htmlaggiungere un elementodivcon un valore di attributoidactivitiesContainersopra l'elementoitemDetailsContainerdivche contiene i componenti Oracle JET Select Single e Chart.<div class="oj-hybrid-padding"> <h1>Product Information</h1> <div id="activitiesContainer"> </div> <div id="itemDetailsContainer"> <oj-label for="basicSelect">Select Chart:</oj-label> ... </div> -
All'interno dell'elemento
activitiesContainerdivaggiungere un elementooj-list-viewcon un attributodatache utilizza un'associazione unidirezionale per ottenere i dati della lista.<div class="oj-hybrid-padding"> <h1>Product Information</h1> <div id="activitiesContainer"> <oj-list-view id="activitiesList" aria-labelledby="activitiesHeader" data="[[activityDataProvider]]" gridlines.item="visible"> </oj-list-view> </div>È inoltre possibile specificare il valore
visibleper l'attributogridlinesin modo che venga visualizzata una linea di griglia tra gli elementi dell'elenco e l'attributoaria-labelledbycome procedura ottimale per l'accesso facilitato. -
All'interno dell'elemento
oj-list-viewcreato, aggiungere un elemento HTMLtemplatecon un attributoslotper visualizzare ogni elemento nella lista.<div class="oj-hybrid-padding"> <h1>Product Information</h1> <div id="activitiesContainer"> <oj-list-view id="activitiesList" aria-labelledby="activitiesHeader" data="[[activityDataProvider]]" gridlines.item="visible"> <template slot="itemTemplate"> </template> </oj-list-view> </div> -
All'interno dell'elemento modello aggiungere un altro elemento
divcontenente un elemento HTML personalizzatooj-bind-textcon un attributovalueche utilizza un'associazione unidirezionale per ottenere i dati della lista dall'oggetto dati corrente.<div class="oj-hybrid-padding"> <h1>Product Information</h1> <div id="activitiesContainer"> <oj-list-view id="activitiesList" aria-labelledby="activitiesHeader" data="[[activityDataProvider]]" gridlines.item="visible"> <template slot="itemTemplate"> <div> <strong> <oj-bind-text value="[[$current.data.name]]"></oj-bind-text> </strong> </div> </template> </oj-list-view> </div> -
Aggiungere un elemento HTML
h3per fornire un'intestazione per l'elenco delle attività.<div class="oj-hybrid-padding"> <h1>Product Information</h1> <div id="activitiesContainer"> <h3 id="activitiesHeader">Activities</h3> <oj-list-view id="activitiesList" aria-labelledby="activitiesHeader" data="[[activityDataProvider]]" gridlines.item="visible"> . . . -
In
itemDetailsContainerdivaggiungere un elementoh3e un elementooj-labelper fornire un'intestazione per il grafico.. . . <div id="itemDetailsContainer"> <h3>Item Details</h3> <oj-label for="basicSelect">Select Chart:</oj-label> . . . -
Salvare il file
dashboard.html. Il filedashboard.htmldeve avere un aspetto simile a final-data-bind-dashboard-html.txt.
Task 4: Esecuzione dell'applicazione Web
-
Nella finestra del terminale, passare alla directory
JET_Web_Applicationed eseguire l'applicazione.$ ojet serveIl browser visualizza l'elenco delle attività visibili nella scheda Dashboard dell'applicazione Web.

-
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. -
Lasciare aperta la finestra del terminale per l'esercitazione successiva.
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.
Data bind a component in an Oracle JET web app
F53099-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.