我是 SAPUI5 的新手,我对整个 OData 模型的事情有点挣扎。
对于一个小练习,我正在开发一个应用程序,它只有一个 Button 和一个 Input 和 oData Binding,它们将输入值传递到 ABAP 后端并获取结果并将其显示在前端的 Message Toast 上。
我的问题,我想我应该在控制器中定义 Odata,对吗?(顺便说一句,它不起作用)如何?2. 我怎样才能从 Input 传递到 Controller 然后 ODAta 并最终取回它?
return Controller.extend("app.Input.controller.main", {
onInit: function () {
// var sUrl = "/sap/opu/odata/sap/ZMAA_ODATA_INPUT_SRV/";
// var oModel = new ODataModel(sUrl);
var oModel = this.getOwnderComponent().getModel();
sap.ui.getCore().setModel(oModel);
},
onShowResult: function (oEvent) {
}
});
并且视图看起来像
<Input id="input" value="{/InputValue}" change=".onChange"></Input>
<Button id="Button" text="Submit" press=".onShowResult"></Button>
显现:
"dataSources": {
"ZMAA_ODATA_INPUT_SRV": {
"uri": "/sap/opu/odata/sap/ZMAA_ODATA_INPUT_SRV/",
"type": "OData",
"settings": {
"odataVersion": "2.0"
}
零件:
return UIComponent.extend("app.Input.Component", {
metadata: {
manifest: "json"
},
/**
* The component is initialized by UI5 automatically during the startup of the app and calls the init method once.
* @public
* @override
*/
init: function () {
// call the base component's init function
UIComponent.prototype.init.apply(this, arguments);
// enable routing
this.getRouter().initialize();
// set the device model
this.setModel(models.createDeviceModel(), "device");
}
});
});