我有一个具有以下结构的应用程序:
`| index.html
| |
+---webapp
| |Component.js
| |manifest.json
| |
| +---controller
| |Detail.controller.js
| |Master.controller.js
| |
| +---service
| | data.json
| |
| \---view
| App.view.xml
| Detail.view.xml
| Master.view.xml`
我的清单文件定义了一个数据源,如下所示:
在sap.app下:
"dataSources": {
"mainService": {
"uri": "/service/data.json",
"type": "JSON"
}
}
我也尝试过路径为“service / data.json”的uri参数,但也没有用。
在sap.ui5:
"models": {
"": {
"dataSource": "mainService",
"type": "sap.ui.model.json.JSONModel"
},
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "sapui5.demo.mvcapp.i18n.i18n"
}
}
}
My Component.js包含以下代码:
sap.ui.define(["sap/ui/core/UIComponent", "sap/ui/model/json/JSONModel"], function( UIComponent, JSONModel)
{
"use strict";
return UIComponent.extend("sapui5.demo.mvcapp.Component",
{
metadata :
{
manifest : "json"
},
init : function()
{
// callthebasecomponent's initfunction
UIComponent.prototype.init.apply(this, arguments);
// createtheviewsbasedontheurl/hash
this.getRouter().initialize();
},
createContent : function()
{
var oRootView = UIComponent.prototype.createContent.apply(this,
arguments);
return oRootView;
}
});
});
我的index.html有以下脚本代码:
sap.ui.getCore().attachInit(function() {
sap.ui.require([
"sap/m/Shell",
"sap/ui/core/ComponentContainer",
"sapui5/demo/mvcapp/Component"],
function(Shell, ComponentContainer, Component)
{
new Shell({
app: new ComponentContainer({
height: "100%",
component: new Component({
id: "mvcAppComponent"
})
})
}).placeAt("content");
});
});
我无法从桌面上的本地json文件中显示我的数据。控制台上没有错误,主视图中的表为空“无数据”。
看起来清单文件完全没有效果,因为我的路由也不起作用,我不确定我的主视图是如何显示的,因为即使我弄乱了我的主视图的名称,它仍然显示出来清单文件未生效。
你能告诉我出错的地方吗?
问候,萨拉赫。
答案 0 :(得分:0)
(鉴于问题在于数据加载,而不是数据绑定,以下内容适用。对于数据绑定问题,请发布控件绑定的代码段)
manifest.json
文件已在webapp
文件夹结构中。由于URI
地址是根据Component.js(see here)的相对路径,因此您需要根据具体情况将模型指定为以下内容:
"dataSources": {
"mainService": {
"uri": "/service/data.json",
"type": "JSON"
} }