我想使用XML视图显示一个简单的表。我有一个模型从JSON文件加载数据。我正在使用'sap.ui.table'和'sap.m'类。问题是我无法将数据提取到视图中。我想我错过了绑定或加载库或可能在引导代码中的东西。
注意:在视图中查找绑定:
以下是代码段:
1)Data.json
{
"empstr":
{
"eId": 100,
"eName": "Prathamesh",
"eSalary": 2400,
"currency": "INR"
},
"empTab": [{
"eId": 100,
"eName": "Prathamesh",
"eSalary": 2400,
"currency": "INR"
}, {
"eId": 200,
"eName": "Prateek",
"eSalary": 2500,
"currency": "USD"
}, {
"eId": 300,
"eName": "Simar",
"eSalary": 1200,
"currency": "INR"
}, {
"eId": 400,
"eName": "Sahil",
"eSalary": 1350,
"currency": "EUR"
}, {
"eId": 500,
"eName": "Sakshi",
"eSalary": 500,
"currency": "USD"
}, {
"eId": 600,
"eName": "Soumya",
"eSalary": 12000,
"currency": "INR"
}, {
"eId": 700,
"eName": "Laxman",
"eSalary": 240000,
"currency": "INR"
}
]
}
2)Main.view.xml
<mvc:View xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:table="sap.ui.table"
controllerName="akhil.controller.Main"
xmlns:html="http://www.w3.org/1999/xhtml">
<table:Table id="myTab1"
selectionMode= "None"
rows="{/empTab}">
<table:title>
<Text text="Table header"></Text>
</table:title>
<table:columns>
<table:Column>
<table:label>
<Label text = "Emp Id"></Label>
</table:label>
<table:template>
<Text text="{eId}"></Text>
</table:template>
</table:Column>
<table:Column>
<table:label>
<Label text = "Emp Name"></Label>
</table:label>
<table:template>
<Text text="{eName}"></Text>
</table:template>
</table:Column>
<table:Column>
<table:label>
<Label text = "Emp Salary"></Label>
</table:label>
<table:template>
<Text text="{eSalary}"></Text>
</table:template>
</table:Column>
<table:Column>
<table:label>
<Label text = "Currency"></Label>
</table:label>
<table:template>
<Text text="{/empTab/currency}"></Text>
</table:template>
</table:Column>
</table:columns>
</table:Table>
</mvc:View>
3)Main.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("akhil.controller.Main", {
onInit: function () {
var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("/ExerciseBinding/Data.json");
this.getView().setModel(oModel);
}
});
});
4)myhtml.html
<!DOCTYPE html>
<html>
<head>
<script id="sap-ui-bootstrap"
src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-libs="sap.m, sap.ui.table"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-bindingsyntax="complex"
data-sap-ui-resourceroots='{
"akhil": "./"
}'
>
</script>
<script>
var oView = new sap.ui.view({
id:"idMain3",
viewName:"akhil.view.Main",
type: "XML"
});
oView.placeAt("XMLcontent");
</script>
</head>
<body class="sapUiBody">
<div id="XMLcontent">
</div>
</body>
</html>
5)错误如下图所示。
我错过了一些东西但却无法弄明白究竟是什么。感谢您的反馈。视图中未填充数据。
您的应用程序找不到您的模型数据文件 - 从404开始。您的以下代码行将导致您的ui5应用程序查看您所服务的Web服务器的根目录:
oModel.loadData("/ExerciseBinding/Data.json");
例如。例如,上面会查看http://<yourserverbaseurl>/ExerciseBinding/Data.json
这不太可能是您找到应用程序和json文件本身的位置。
查看Chrome开发者工具上的网络标签,了解您的应用实际查看的位置与他们在您的网络服务器上的实际位置。