Los datos enlazan un componente en una aplicación web de Oracle JET
Introducción
En este tutorial se muestra cómo utilizar un documento JSON local en la aplicación web Oracle JavaScript Extension Toolkit (Oracle JET).
Oracle JET es un kit de herramientas de desarrollo que proporciona una serie de clases de proveedores de datos para gestionar datos de distintos orígenes. En viewModel, rellenará una instancia de MutableArrayDataProvider con los datos leídos de un archivo JSON y, a continuación, enlazará la instancia MutableArrayDataProvider a los elementos HTML personalizados de Oracle JET en la vista.
Objetivos
Al finalizar este tutorial, aprenderá a leer datos de un documento JSON en un proveedor de datos, agregar un componente de vista de lista de Oracle JET y enlazar los datos del componente a los objetos de datos JSON.
Requisitos
- Entorno de desarrollo configurado para crear aplicaciones de Oracle JET con el tiempo de ejecución de JavaScript, Node.js y la última interfaz de línea de comandos de la versión de Oracle JET instalada
- Finalización de los tutoriales anteriores en esta ruta de aprendizaje, para que haya creado la carpeta
JET_Web_Application - store_data.json descargado en el directorio
JET_Web_Application/src/ts/
Tarea 1: Descarga del documento JSON y examen de los datos
- Descargue el archivo
store_data.jsonen el directorioJET_Web_Application/src/ts/. - Abra el archivo
store_data.jsonen el explorador web y visualice la estructura de datos. El archivostore_data.jsoncontiene una lista de objetos de actividad y sus propiedades. Cada actividad incluye una matriz de elementos con sus propias propiedades.
Tarea 2: Rellenar un proveedor de datos en ViewModel
Transfiere datos del archivo JSON a un objeto ojmutablearraydataprovider de Oracle JET.
-
Navegue al directorio
JET_Web_Application/src/ts/viewModelsy abra el archivodashboard.tsen un editor. -
Importe los datos del archivo
store_data.jsonpara que estén disponibles en 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"; -
Si no está presente, importe el módulo
ojmutablearraydataproviderque utilizará para contener los datos JSON.import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); -
Antes de la clase
DashboardViewModel(), defina un alias de tipo,Activity, que incluya el campoidde tiponumber.... type Activity = { id: number; } class DashboardViewModel { -
En la clase
DashboardViewModel(), agregue un tipo paraactivityDataProviderque creará en el siguiente paso.class DashboardViewModel { val: ko.Observable<string>; . . . chartDataProvider: MutableArrayDataProvider<string, {}>; chartData: Array<Object>; activityDataProvider: MutableArrayDataProvider<Activity["id"], Activity>; . . . -
En el método
constructrorde la claseDashboardViewModel(), cree una instancia deMutableArrayDataProvider(activityDataProvider) y utilice el métodoJSON.parsepara leer los datos JSON.constructor() { this.val = ko.observable("pie"); ... this.activityDataProvider = new MutableArrayDataProvider< Activity["id"], Activity >(JSON.parse(storeData), { keyAttributes: "id", }); . . . -
Importe el módulo de componente de vista de lista de Oracle JET.
import * as storeData from "text!../store_data.json"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojlistview";El módulo
ojlistviewsoporta la vista en la siguiente sección de este tutorial. -
Guarde el archivo
dashboard.ts. El archivodashboard.tsdebe ser similar a final-data-bind-dashboard-ts.txt.
Tarea 3: Enlace de datos del componente de vista de lista en la vista
El elemento oj-list-view es un elemento HTML personalizado de Oracle JET con funciones interactivas que es una versión mejorada de una lista HTML. Para proporcionar los datos a la lista, enlace la variable activityDataProvider rellenada en viewModel al atributo data de la vista de lista.
-
Navegue al directorio
JET_Web_Application/src/ts/viewsy abra el archivodashboard.htmlen un editor. -
En el archivo
dashboard.html, agregue un elementodivcon un valor de atributoiddeactivitiesContainersobre el elementoitemDetailsContainerdivque contiene los componentes Oracle JET Select Single y 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> -
En el elemento
activitiesContainerdiv, agregue un elementooj-list-viewcon un atributodataque utilice un enlace unidireccional para obtener los datos de la 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>También se especifica el valor
visiblepara el atributogridlinespara que aparezca una línea de cuadrícula entre los elementos de la lista y el atributoaria-labelledbycomo una mejor práctica de accesibilidad. -
En el elemento
oj-list-viewque ha creado, agregue un elementotemplateHTML con un atributoslotpara representar cada elemento de la 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> -
En el elemento de plantilla, agregue otro elemento
divque contenga un elemento HTML personalizadooj-bind-textcon un atributovalueque utilice un enlace unidireccional para obtener los datos de lista del objeto de datos actual.<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> -
Agregue un elemento HTML
h3para proporcionar una cabecera para la lista de actividades.<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"> . . . -
En
itemDetailsContainerdiv, agregue un elementoh3y un elementooj-labelpara proporcionar una cabecera para el gráfico.. . . <div id="itemDetailsContainer"> <h3>Item Details</h3> <oj-label for="basicSelect">Select Chart:</oj-label> . . . -
Guarde el archivo
dashboard.html. El archivodashboard.htmldebe ser similar a final-data-bind-dashboard-html.txt.
Tarea 4: Ejecución de la aplicación web
-
En la ventana de terminal, cambie al directorio
JET_Web_Applicationy ejecute la aplicación.$ ojet serveEl explorador muestra la lista de actividades visibles en el separador Panel de control de la aplicación web.

-
Cierre la ventana o separador del explorador que muestra la aplicación web en ejecución.
-
En la ventana de terminal, pulse Ctrl+C y, si se le solicita, introduzca
ypara salir del trabajo por lotes de herramientas de Oracle JET. -
Deje abierta la ventana de terminal para el siguiente tutorial.
Más recursos de aprendizaje
Explore otras prácticas en docs.oracle.com/learn o acceda a contenido de aprendizaje más gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de formación de Oracle.
Para obtener documentación sobre los productos, visite Oracle Help Center.
Data bind a component in an Oracle JET web app
F53096-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.