Wie es in den 20 Unterrichtsstunden der walkthroug gesagt wird, versuche ich ein Modell mit Invoices.json Instanate. Aber als Ergebnis erhalte ich "No data" in einer Liste. Ich habe alle meine Quellen mit den Onces verglichen, die sie in einem Tutorial haben, und sie sind die gleichen (ohne URLs in der index.html)OpenUI5: kann kein Modell
Soweit ich verstehe, ist die Version des SDK ich verwende "1.48 .10 "(ich überprüfe es in einer sap-ui-version.json), also sollte die Instanation funktionieren.
Hier ist meine index.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<title>Walkthrough</title>
<script src="http://localhost:63342/TestOprnUI5/resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge"
data-sap-ui-preload="async"
data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./testoprnui5/"
}'>
</script>
<script>
sap.ui.getCore().attachInit(function() {
new sap.m.Shell({
app: new sap.ui.core.ComponentContainer({
name: "sap.ui.demo.wt"
})
}).placeAt("content");
});
</script>
</head>
<body class="sapUiBody" id="content">
</body>
</html>
Hier ist InvoiceList.view, xml:
<mvc:View
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<List
headerText="{i18n>invoiceListTitle}"
class="sapUiResponsiveMargin"
width="auto"
items="{invoice>/Invoices}" >
<items>
<ObjectListItem
title="{invoice>Quantity} x {invoice>ProductName}"/>
</items>
</List>
</mvc:View>
Hier ist App.view.xml:
<mvc:View
controllerName="sap.ui.demo.wt.controller.App"
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc"
displayBlock="true">
<App class="myAppDemoWT">
<pages>
<Page title="{i18n>homePageTitle}">
<headerContent>
<Button
icon="sap-icon://hello-world"
press="onOpenDialog"/>
</headerContent>
<content>
<mvc:XMLView viewName="sap.ui.demo.wt.view.HelloPanel"/>
<mvc:XMLView viewName="sap.ui.demo.wt.view.InvoiceList"/>
</content>
</Page>
</pages>
</App>
</mvc:View>
Hier component.js:
sap.ui.define([
"sap/ui/core/UIComponent",
"sap/ui/model/json/JSONModel",
"sap/ui/demo/wt/controller/HelloDialog"
], function (UIComponent, JSONModel, HelloDialog) {
"use strict";
return UIComponent.extend("sap.ui.demo.wt.Component", {
metadata: {
manifest: "json"
},
init: function() {
// call the init function of the parent
UIComponent.prototype.init.apply(this, arguments);
// set data model
var oData = {
recipient: {
name: "World"
}
};
var oModel = new JSONModel(oData);
this.setModel(oModel);
// set dialog
this._helloDialog = new HelloDialog(this.getRootControl());
},
openHelloDialog: function() {
this._helloDialog.open();
}
});
});
Hier
ist die Projektstruktur:
TestOpenUI5
- resources
- testopenui5
-- controller
--- App.controller.js
--- HelloDialog.js
--- HelloPanel.controller.js
-- css
--- styles.css
-- i18n
--- i18n.properties
-- view
--- App.view.xml
--- HelloDialog.fragment.xml
--- HelloPanel.view.xml
--- InvoiceList.view.xml
-- Component.js
-- Invoices.json
-- manifest.json
- index.html
- Invoices.json
PS: Ich habe versucht, Invoices.json zu den verschiedenen Ordnern zu setzen, an die Wurzel und den/testopenui5 Ordner mit dem gleichen Ergebnis. PPS: es sieht aus wie Rechnungen sind nicht im Modell enthalten, aber wie kann ich es überprüfen, um sicher zu sein? Und wo kann ich ein paar Protokolle finden?
coud Sie bitte zeigen Sie Ihre „manifest.json“ Datei, weil es eine Verbindung invoices.json definiert. Sie können die "Protokolle" auf der Registerkarte "Netzwerk" der dev.tools von Chrome überprüfen (die Rechnungsdatei muss angefordert werden). –
vielleicht ein Tippfehler in Ihrem manifest.json? anstelle von Rechnungsrechnungen? Wie auch immer, bitte teilen Sie Ihr manifest.json – n01dea