SAPUI5在控制器中获取OData模型

时间:2017-08-10 09:55:12

标签: javascript odata sapui5

我在SAPUI5中制作简单的项目,我在控制器中从OData获取gettin数据时遇到了一些问题。我猜是否有可能在js。

我按目的地与Northwind.svc连接。 我可以使用" {/ Products}"轻松地在.view文件中显示它,但在.controller文件中没有任何作用。 我试图使用this.getView()。getModel(),创建新的sap.ui.model.odata.v2.ODataModel({serviceUrl:" services.odata.org/Northwind/Northwind.svc"} );

我一直希望得到自己的东西,我只是回来了。

我的manifest.json文件中有一段

"sap.app": {
    "dataSources": {
        "Northwind": {
            "uri": "/V2/Northwind/Northwind.svc/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0",
                "localUri": "localService/Northwind/metadata.xml"
            }
        }
    }
},

"models": {
        "i18n": {
            "type": "sap.ui.model.resource.ResourceModel",
            "settings": {
                "bundleName": "Odczyty.i18n.i18n"
            }
        },
        "": {
            "type": "sap.ui.model.odata.v2.ODataModel",
            "settings": {
                "defaultOperationMode": "Server",
                "defaultBindingMode": "Default",
                "defaultCountMode": "Request"
            },
            "dataSource": "Northwind",
            "preload": true
        }

新app.json:

"routes": [
{
  "path": "/resources",
  "target": {
    "type": "service",
    "name": "sapui5",
    "entryPath": "/resources"
  },
  "description": "SAPUI5 Resources"
},
{
  "path": "/test-resources",
  "target": {
    "type": "service",
    "name": "sapui5",
    "entryPath": "/test-resources"
  },
  "description": "SAPUI5 Test Resources"
},
{
  "path": "/V2/Northwind/Northwind.svc/",
  "target": {
    "type": "destination",
    "name": "Northwind"
  },
  "description": "Northwind OData Service"
}

组件:JS

init: function() {
        // call the base component's init function
        UIComponent.prototype.init.apply(this, arguments);

        // set the device model
        this.setModel(models.createDeviceModel(), "device");
    }

models.js:

return {

    createDeviceModel: function() {
        var oModel = new JSONModel(Device);
        oModel.setDefaultBindingMode("OneWay");
        return oModel;
    }
};

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以使用getObjectODataModel获取对象或属性,例如,您可以通过以下方式获取电子邮件属性:

oModel.getObject("/Clients(KEY)/Email")

或者您可以先获取整个对象,然后访问电子邮件属性

oModel.getObject("/Clients(KEY)").Email

您的样本response

中的KEY应为9000005L