Liaison de données d'un composant dans une application Web Oracle JET
Introduction
Ce tutoriel vous explique comment utiliser un document JSON local dans votre application Web Oracle JavaScript Extension Toolkit (Oracle JET).
Oracle JET est un toolkit de développement qui fournit un certain nombre de classes de fournisseurs de données pour gérer les données de différentes sources. Dans viewModel, vous allez remplir une instance de MutableArrayDataProvider avec les données lues à partir d'un fichier JSON, puis lier l'instance MutableArrayDataProvider aux éléments HTML personnalisés Oracle JET dans la vue.
Objectifs
A l'issue de ce tutoriel, vous aurez appris à lire des données d'un document JSON dans un fournisseur de données, à ajouter un composant Oracle JET List View et à lier les données du composant aux objets de données JSON.
Prérequis
- Environnement de développement configuré pour créer des applications Oracle JET avec l'exécution JavaScript, Node.js et la dernière interface de ligne de commande de la version Oracle JET installée
- Réalisation des tutoriels précédents dans ce parcours de formation, afin d'avoir créé le dossier
JET_Web_Application - store_data.json téléchargé dans le répertoire
JET_Web_Application/src/ts/
Tâche 1 : télécharger le document JSON et examiner les données
- Téléchargez le fichier
store_data.jsondans le répertoireJET_Web_Application/src/ts/. - Ouvrez le fichier
store_data.jsondans votre navigateur Web et affichez la structure des données. Le fichierstore_data.jsoncontient la liste des objets d'activité et leurs propriétés. Chaque activité inclut un tableau d'éléments avec leurs propres propriétés.
Tâche 2 : remplir un fournisseur de données dans ViewModel
Vous propagez les données du fichier JSON vers un objet Oracle JET ojmutablearraydataprovider.
-
Accédez au répertoire
JET_Web_Application/src/ts/viewModelset ouvrez le fichierdashboard.tsdans un éditeur. -
Importez les données à partir du fichier
store_data.jsonafin qu'elles soient disponibles dans 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"; -
S'il n'est pas présent, importez le module
ojmutablearraydataproviderque vous utiliserez pour contenir les données JSON.import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); -
Avant la classe
DashboardViewModel(), définissez un alias de type,Activity, qui inclut le champidde typenumber.... type Activity = { id: number; } class DashboardViewModel { -
Dans la classe
DashboardViewModel(), ajoutez un type pouractivityDataProviderque vous allez créer à l'étape suivante.class DashboardViewModel { val: ko.Observable<string>; . . . chartDataProvider: MutableArrayDataProvider<string, {}>; chartData: Array<Object>; activityDataProvider: MutableArrayDataProvider<Activity["id"], Activity>; . . . -
Dans la méthode
constructrorde la classeDashboardViewModel(), créez une instance deMutableArrayDataProvider(activityDataProvider) et utilisez la méthodeJSON.parsepour lire les données JSON.constructor() { this.val = ko.observable("pie"); ... this.activityDataProvider = new MutableArrayDataProvider< Activity["id"], Activity >(JSON.parse(storeData), { keyAttributes: "id", }); . . . -
Importez le module de composant Oracle JET List View.
import * as storeData from "text!../store_data.json"; import MutableArrayDataProvider = require("ojs/ojmutablearraydataprovider"); import "ojs/ojlistview";Le module
ojlistviewprend en charge la vue dans la section suivante de ce tutoriel. -
Enregistrez le fichier
dashboard.ts. Le fichierdashboard.tsdoit ressembler à final-data-bind-dashboard-ts.txt.
Tâche 3 : liaison des données au composant Vue Liste de la vue
L'élément oj-list-view est un élément HTML personnalisé Oracle JET avec des fonctionnalités interactives qui constitue une version améliorée d'une liste HTML. Vous fournissez les données à la liste en liant la variable activityDataProvider remplie dans viewModel à l'attribut data de la vue de liste.
-
Accédez au répertoire
JET_Web_Application/src/ts/viewset ouvrez le fichierdashboard.htmldans un éditeur. -
Dans le fichier
dashboard.html, ajoutez un élémentdivdont la valeur d'attributidestactivitiesContainerau-dessus de l'élémentitemDetailsContainerdivqui contient les composants Oracle JET Select Single et 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> -
Dans l'élément
activitiesContainerdiv, ajoutez un élémentoj-list-viewavec un attributdataqui utilise une liaison unidirectionnelle pour obtenir les données de la liste.<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>Nous spécifions également la valeur
visiblepour l'attributgridlinesafin qu'une ligne de grille apparaisse entre les éléments de la liste et l'attributaria-labelledbycomme meilleure pratique en matière d'accessibilité. -
Dans l'élément
oj-list-viewque vous avez créé, ajoutez un élément HTMLtemplateavec un attributslotpour afficher chaque élément de la liste.<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> -
Dans l'élément de modèle, ajoutez un autre élément
divqui contient un élément HTML personnaliséoj-bind-textavec un attributvaluequi utilise une liaison unidirectionnelle pour obtenir les données de liste de l'objet de données en cours.<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> -
Ajoutez un élément HTML
h3pour fournir un en-tête pour la liste des activités.<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"> . . . -
Dans
itemDetailsContainerdiv, ajoutez un élémenth3et un élémentoj-labelpour fournir un en-tête pour le graphique.. . . <div id="itemDetailsContainer"> <h3>Item Details</h3> <oj-label for="basicSelect">Select Chart:</oj-label> . . . -
Enregistrez le fichier
dashboard.html. Le fichierdashboard.htmldoit ressembler à final-data-bind-dashboard-html.txt.
Tâche 4 : Exécuter l'application Web
-
Dans la fenêtre de terminal, accédez au répertoire
JET_Web_Applicationet exécutez l'application.$ ojet serveVotre navigateur affiche la liste des activités visibles dans l'onglet Tableau de bord de votre application Web.

-
Fermez la fenêtre ou l'onglet du navigateur qui affiche l'application Web en cours d'exécution.
-
Dans la fenêtre de terminal, appuyez sur Ctrl+C et, si vous y êtes invité, entrez
ypour quitter le traitement batch des outils Oracle JET. -
Laissez la fenêtre de terminal ouverte pour le tutoriel suivant.
Ressources de formation supplémentaires
Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir Oracle Learning Explorer.
Pour consulter la documentation du produit, consultez le centre d'aide Oracle.
Data bind a component in an Oracle JET web app
F53104-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.