0

我是 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");
    }
});

});

4

0 回答 0