我正在 SAPUI5 中制作简单的项目,我在从 Controller 中的 OData 获取数据时遇到了一些问题。我猜在 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
}
neo-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");
}
模型.js:
return {
createDeviceModel: function() {
var oModel = new JSONModel(Device);
oModel.setDefaultBindingMode("OneWay");
return oModel;
}
};
知道我做错了什么吗?
最佳答案
您可以使用getObject
从ODataModel
获取您的对象或属性,例如,您可以通过以下方式获取Email 属性:
oModel.getObject("/Clients(KEY)/Email")
或者您可以先获取整个对象,然后再访问 Email 属性
oModel.getObject("/Clients(KEY)").Email
KEY 在您的示例中应为 9000005L
response
关于javascript - SAPUI5 在 Controller 中获取 OData 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610387/