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.json
dans le répertoireJET_Web_Application/src/ts/
. - Ouvrez le fichier
store_data.json
dans votre navigateur Web et affichez la structure des données. Le fichierstore_data.json
contient 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/viewModels
et ouvrez le fichierdashboard.ts
dans un éditeur. -
Importez les données à partir du fichier
store_data.json
afin 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
ojmutablearraydataprovider
que 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 champid
de typenumber
.... type Activity = { id: number; } class DashboardViewModel {
-
Dans la classe
DashboardViewModel()
, ajoutez un type pouractivityDataProvider
que 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
constructror
de la classeDashboardViewModel()
, créez une instance deMutableArrayDataProvider
(activityDataProvider
) et utilisez la méthodeJSON.parse
pour 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
ojlistview
prend en charge la vue dans la section suivante de ce tutoriel. -
Enregistrez le fichier
dashboard.ts
. Le fichierdashboard.ts
doit 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/views
et ouvrez le fichierdashboard.html
dans un éditeur. -
Dans le fichier
dashboard.html
, ajoutez un élémentdiv
dont la valeur d'attributid
estactivitiesContainer
au-dessus de l'élémentitemDetailsContainer
div
qui 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
activitiesContainer
div
, ajoutez un élémentoj-list-view
avec un attributdata
qui 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
visible
pour l'attributgridlines
afin qu'une ligne de grille apparaisse entre les éléments de la liste et l'attributaria-labelledby
comme meilleure pratique en matière d'accessibilité. -
Dans l'élément
oj-list-view
que vous avez créé, ajoutez un élément HTMLtemplate
avec un attributslot
pour 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
div
qui contient un élément HTML personnaliséoj-bind-text
avec un attributvalue
qui 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
h3
pour 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
itemDetailsContainer
div
, ajoutez un élémenth3
et un élémentoj-label
pour 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.html
doit 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_Application
et exécutez l'application.$ ojet serve
Votre 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
y
pour 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.