在SAPUI5中使用本地JSON文件进行数据绑定



我对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文件吗。

非常感谢大家

在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);

我觉得这样比较好。

在定义表及其列之后,尝试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
    });
}

终于成功了,我刚刚在SAP ERP系统的服务器上安装了一个IIS7 Web服务器,并在IIS7上托管了我的文件。我不需要使用AJAX请求或SAPUI5库的正常加载模型方法。谢谢你的帮助。

最新更新