Inhalt in der Oracle JET-Webanwendung anzeigen oder ausblenden
Einführung
Die Oracle JET-Komponente oj-module und die responsiven JavaScript-Utilityklassen können je nach Bildschirmgröße unterschiedliche Ansichten laden. Mit der Komponente oj-module können Sie Inhalte in einem Bereich einer Seite ersetzen, indem Sie eine Ansicht und den entsprechenden viewModel an ein Element binden.
Ziele
Nach Abschluss dieses Tutorials haben Sie eine Oracle JET-Webanwendung angepasst, um eine View und die entsprechende viewModel mit einer Oracle JET-Komponente oj-module und einem responsiven TypeScript-Code zu binden.
Voraussetzungen
- Eine Entwicklungsumgebung zum Erstellen von Oracle JET-Anwendungen mit der JavaScript-Laufzeit, Node.js und der neuesten installierten Oracle JET-Befehlszeilenschnittstelle
- Zugriff auf das Oracle JET Developer Cookbook
- Abschluss des vorherigen Tutorials in diesem Lernpfad, sodass Sie den Ordner
JET_Web_Applicationerstellt haben - Die abgeschlossene App jet_web_application_responsive_design_final.zip wurde optional heruntergeladen
Aufgabe 1: Modulkomponente zur Ansicht hinzufügen
Definieren Sie die View und die entsprechende viewModel unter der Oracle JET-Komponente oj-module mit dem Konfigurationsobjekt.
-
Navigieren Sie zum Verzeichnis
JET_Web_Application/src/ts/views, und öffnen Sie die Dateidashboard.htmlin einem Editor. -
Suchen Sie das Element
divmitid="activityItemsContainer". Fügen Sie in der leerendiveinendiv-Container hinzu, der ein benutzerdefiniertes HTML-Elementoj-modulemit dem Attributconfigumgibt, das den Navigationsbereich definiert.<div id="activityItemsContainer" class="oj-flex-item oj-md-6 oj-sm-12"> <div id="container"> <oj-module config="[[moduleConfig]]"></oj-module> </div> </div> -
Speichern Sie die Datei
dashboard.html.Der Code sollte in etwa wie der final-dashboard-html.txt aussehen.
Aufgabe 2: Liste der importierten Module in ViewModel aktualisieren
Importieren Sie oben in der Datei dashboard.ts Module, die Oracle JET-Komponenten unterstützen.
-
Navigieren Sie zum Verzeichnis
JET_Web_Application/src/ts/viewModels, und öffnen Sie die Dateidashboard.tsin einem Editor. -
Fügen Sie nach dem Modul
ojlistviewdie drei responsiven HTML-Utilitymodule von JET und das Modulojmodule-elementhinzu.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"; import "ojs/ojlistview"; import * as ResponsiveUtils from "ojs/ojresponsiveutils"; import * as ResponsiveKnockoutUtils from "ojs/ojresponsiveknockoututils"; import * as HtmlUtils from "ojs/ojhtmlutils"; import "ojs/ojmodule-element"; -
Speichern Sie die Datei
dashboard.ts.Der Importblock sollte in etwa import-block-ts.txt aussehen.
Aufgabe 3: Code für responsives Laden in ViewModel hinzufügen
Sie möchten unterschiedliche Inhalte für verschiedene Bildschirmgrößen in einem responsiven Layout laden. Mit oj-module können Sie verschiedene Ansichten laden, indem Sie eine beobachtbare Medienabfrage oder eine beobachtbare benutzerdefinierte Medienabfrage verwenden.
-
Öffnen Sie das Oracle JET Cookbook, und navigieren Sie zur Cookbook-Homepage. Klicken Sie in der Menüleiste auf Framework und dann auf Reaktionsverhalten und dann auf Reaktionsbereites Laden.
-
Dort können Sie auf die API-Dokumentation für den Namespace
ResponsiveUtilszugreifen. Scrollen Sie dann zum Abschnitt "Methoden", und lesen Sie Informationen zur MethodegetFrameworkQuery. -
Fügen Sie in der Datei
dashboard.tsunter der DeklarationchartDataProvidereinen Inline-Vorlagencodeblock hinzu, der an das benutzerdefinierte HTML-Elementoj-moduleübergeben werden soll.this.chartDataProvider = new MutableArrayDataProvider(this.chartData, { keyAttributes: "id", }); // Define the oj-module inline template for Activity Items list const lg_xl_view = '<h3 id="activityItemsHeader">Activity Items</h3>' + '<oj-list-view style="font-size: 18px" aria-labelledby="activityItemsHeader">' + "<ul>" + "<li>" + '<div class="oj-flex-item">' + "<p>SureCatch Baseball Glove</p>" + "<p>Western R16 Helmet</p>" + "<p>Western C1 Helmet</p>" + "<p>Western Bat</p>" + "</div>" + "</li>" + "<li>" + '<div class="oj-flex-item">' + "<p>Air-Lift Tire Pump</p>" + "<p>Intact Bike Helmet</p>" + "<p>Nimbus Bike Tire</p>" + "<p>Refill Water Bottle</p>" + "<p>Swift Boys 21 Speed</p>" + "</div>" + "</li>" + "</ul>" + "</oj-list-view>";Der Inline-Datenknoten für Großbildschirme und extra große Bildschirme wird durch die Variable
lg_xl_viewgeleitet. -
Definieren Sie unter der Definition der Variable
lg_xl_viewden Code, um den Inline-Datenknoten für kleine und mittlere Bildschirme durch die Variablesm_md_viewzu übergeben.// Display this content for small and medium screen sizes const sm_md_view = '<div id="sm_md" style="background-color:lightcyan; padding: 10px; font-size: 10px">' + '<h3 id="activityDetailsHeader">Activity Details</h3>' + '<oj-list-view style="font-size: 18px" aria-labelledby="activityDetailsHeader">' + "<ul>" + "<li>" + '<div class="oj-flex-item">' + "<p>SureCatch Baseball Glove</p>" + "<p>Western R16 Helmet</p>" + "<p>Western C1 Helmet</p>" + "<p>Western Bat</p>" + "</div>" + "</li>" + "</ul>" + "</oj-list-view>" + "</div>"; -
Definieren Sie unter der Definition der Variable
sm_md_viewden Code zum Laden der Ansicht für verschiedene Bildschirmgrößen mit einer beobachtbarenthis.large-Medienabfrage.// Identify the screen size and display the content for that screen size const lgQuery = ResponsiveUtils.getFrameworkQuery( ResponsiveUtils.FRAMEWORK_QUERY_KEY.LG_UP ); this.large = ResponsiveKnockoutUtils.createMediaQueryObservable(lgQuery); this.moduleConfig = ko.pureComputed(() => { let viewNodes = HtmlUtils.stringToNodeArray( this.large() ? lg_xl_view : sm_md_view ); return { view: viewNodes }; }); /** * End of oj-module code */Mit der HTML-Utilityfunktion können Sie die Medienabfragezeichenfolge des Frameworks in der Variablen
this.largeabrufen. Der HTML-Code in der Variablenlg_xl_viewwird geladen, wenn der Wert der Medienabfragezeichenfolge inthis.large()gleichLG_UP, groß oder höher ist. Der HTML-Code in der Variablensm_md_viewwird geladen, wenn der Wert der Medienabfragezeichenfolge inthis.large()nicht gleichLG_UPist. -
Fügen Sie Typdeklarationen für
largeundmoduleConfigzur Klasse hinzu.class DashboardViewModel { chartTypes: Array<Object>; chartTypesDP: MutableArrayDataProvider<ChartType["value"], ChartType>; chartData: Array<Object>; chartDataProvider: MutableArrayDataProvider<string, {}>; activityDataProvider: MutableArrayDataProvider<Activity["id"], Activity>; val: ko.Observable<string>; large: ko.Observable<boolean>; moduleConfig: ko.PureComputed<any>; -
Speichern Sie die Datei
dashboard.ts.Die Datei sollte in etwa final-dashboard-ts.txt aussehen.
Aufgabe 4: Webanwendung ausführen
-
Wechseln Sie im Terminalfenster in das Verzeichnis
JET_Web_Application, und führen Sie die App aus.$ ojet serveMit Oracle JET Tooling wird Ihre Webanwendung in einem lokalen Webbrowser ausgeführt, in dem Sie den Dashboard-Inhalt anzeigen können.

Beschreibung der Abbildung final-app.png
Um den Inhalt in der Variablen
sm_md_viewanzuzeigen, passen Sie den Bildschirm auf eine kleine oder mittlere Größe an. Beachten Sie die gekürzte Liste der Elemente unter der Überschrift "Aktivitätsdetails", die helles Cyan markiert ist.
Beschreibung der Abbildung Small-screen.png
Um den Inhalt in der Variablen
lg_xl_viewanzuzeigen, ändern Sie die Bildschirmgröße in eine große oder zusätzliche Größe.
-
Drücken Sie im Terminalfenster auf Ctrl+C, und geben Sie bei entsprechender Aufforderung
yein, um den Oracle JET-Tooling-Batchjob zu beenden. -
Schließen Sie das Browserfenster oder die Browserregisterkarte.
-
Ihre abgeschlossene App mit responsiver Designfunktion sollte in etwa jet_web_application_responsive_design_final.zip aussehen.
Aufgabe 5: (Optional) Webanwendung aus einer wiederhergestellten App ausführen
Wenn Sie die abgeschlossene Oracle JET-Webanwendung aus dem angegebenen Code ausführen möchten, können Sie die App aus der heruntergeladenen Archivdatei wiederherstellen. Um mit einer gestreiften und komprimierten Oracle JET-App zu arbeiten, müssen Sie Projektabhängigkeiten, einschließlich Oracle JET-Tooling, und die erforderlichen Librarys und Module, innerhalb der extrahierten App wiederherstellen.
-
Laden Sie die Datei
jet_web_application_responsive_design_final.zipherunter, und extrahieren Sie den Inhalt der abgeschlossenen App in den Ordnerjet_web_application_responsive_design_final. -
Navigieren Sie im Terminalfenster zum Ordner
jet_web_application_responsive_design_final, und stellen Sie die Oracle JET-Webanwendung wieder her.$ ojet restore -
Warten Sie auf eine Bestätigung.
$ Restore completeDie App kann jetzt ausgeführt werden.
-
Führen Sie die Webanwendung aus, und testen Sie sie im Browser.
$ ojet serve -
Schließen Sie das Browserfenster oder die Registerkarte, auf der Ihre aktive Webanwendung angezeigt wird.
-
Drücken Sie im Terminalfenster auf Ctrl+C, und geben Sie bei entsprechender Aufforderung
yein, um den Oracle JET-Tooling-Batchjob zu beenden.
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte für kostenloses Lernen im Oracle Learning YouTube-Kanal zu. Außerdem besuchen Sie education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie im Oracle Help Center.
Show or hide content in the Oracle JET web application
F53149-01
February 2022
Copyright © 2022, Oracle and/or its affiliates.