我对SAPUI5有点问题。我有以下代码:
var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("JSON/saplogon.json");
var oTable = new sap.ui.table.Table({
visibleRowCount: 30,
firstVisibleRow: 0
});
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Server"}),
template: new sap.ui.commons.TextView().bindProperty("text", "Server"),
width: "40%"
}));
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Beschreibung"}),
template: new sap.ui.commons.TextView().bindProperty("text", "Description"),
width: "40%"
}));
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "Adresse"}),
template: new sap.ui.commons.TextView().bindProperty("text", "Address"),
width: "10%"
}));
oTable.addColumn(new sap.ui.table.Column({
label: new sap.ui.commons.Label({text: "SystemID"}),
template: new sap.ui.commons.TextView().bindProperty("text", "mssysname"),
width: "10%"
}));
oTable.setModel(oModel);
oTable.bindRows({
path: "/Systeme",
filter: allFilter
});
oPage_Results.addContent(oTable);
上面的代码有效,但当我将.JSON文件的目录更改为我的服务器上的目录时,它无法正常工作,我也尝试从另一台服务器获取JSONP的数据,但也无法正常工作,任何人都可以请帮助我找到一种从我的服务器中使用本地JSON文件的方法,该文件不在我的包中。
非常感谢你们
答案 0 :(得分:2)
在UI5中加载JSON文件的更好方法
var oModel = new JSONModel()
oModel.loadData(pathToTheJSONFile);
oModel.attachRequestCompleted(function(oEventModel){
//console.log(oModel.getData());
//This is called after data is loading
});
oTable.setModel(oModel);
我觉得这是更好的方式。
答案 1 :(得分:0)
在定义表及其列之后尝试Ajax文件:
var sServiceUrl = 'yourServerOrNetworkPathInclJson';
var post = $.ajax({
url : sServiceUrl,
type : "GET"
});
post.done(function(data) {
var oModel = new sap.ui.model.json.JSONModel();
console.log(data); // check binding path
oModel.setData(data);
oTable.setModel(oModel);
oTable.bindRows({
path : "/", // might also be "/d/results" or whatever
});
}
答案 2 :(得分:0)
最后它现在工作了,我刚刚在我的SAP ERP系统的服务器上安装了一个IIS7 Web服务器,并通过IIS7托管了我的文件。我不需要使用AJAX请求或SAPUI5库的正常加载模型方法。谢谢你的帮助伙伴。