无法绑定或显示来自 ModelData.read 的数据以在 SapUi5 中形成

Can´t to bind or show data from ModelData.read to form in SapUi5

我有一个大麻烦把我吓坏了,检查一下:

这是我的 xml 视图,程序分为两个不同的视图,第一个是带导航的 table,第二个是详细信息,涉及表单。

<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="Hello_World.Hello_World.controller.View2"
xmlns:html="http://www.w3.org/1999/xhtml" xmlns:form="sap.ui.layout.form">
<App>
    <pages>
        <Page title="Detalles" showHeader="true">
            <Button type="Back" press="patras" tooltip="test"/>
            <VBox>
                </VBox>
                    <form:SimpleForm id="formPruebas" maxContainerCols="2" layout="ResponsiveGridLayout" labelSpanL="5" labelSpanM="4" labelSpanS="6" title="Formulario">
                        <Label text="CustomerID"/>
                            <Text text="{jsonmodel>CustomerID}"/>

                        <Label text="CompanyName"/>
                            <Text text="{CompanyName}"/>
                        <Label text="ContactTitle" />
                            <Text text="{ContactTitle}"/>

                        <Label text="Adress"/>
                            <Text text="{Adress}"/> 

                        <Label text="City"/>
                            <Text text="{City}"/>

                        <Label text="PostalCode"/>
                            <Text text="{PostalCode}"/>

                        <Label text="Country" />
                            <Text text="{i18n>Country}"/>

                        <Button text="Aceptar" type="Accept">
                            <layoutData>
                                <FlexItemData growFactor="1" />
                            </layoutData>
                        </Button>

                        <Button text="Editar" width="100px">
                            <layoutData>
                                <FlexItemData growFactor="1" />
                            </layoutData>
                        </Button>

                    </form:SimpleForm>

        </Page>
    </pages>
</App>

好的,这是我的控制器:

onInit: function() {
            var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
            oRouter.getRoute("View2").attachMatched(this._onRouteMatched, this);
            },

            _onRouteMatched: function(oEvent) {
                var idDevuelto = oEvent.getParameter("arguments").data;
                var idCompleto = "/Customers('" + idDevuelto + "')"; 
                //var oForm = this.getView().byId("formPruebas");
                var oForm = this.getView().byId("formPruebas");
                var serviceUrl = "myurl";
                var oModelData = new sap.ui.model.odata.ODataModel(serviceUrl,{
                    JSON:true,
                    useBatch: false
                });

                oModelData.read(idCompleto, {
                    success: function (oData) {
                        sap.m.MessageToast.show(oData.CustomerID);
                        var oModel = new JSONModel(oData.results);
                        oForm.setModel(oModel.results);

                    },
                    error: function (oError) {
                        sap.m.MessageToast.show("No funca");
                    }
                });



            },

但是,当我 运行 程序时,结果没有显示在我的视图中,知道吗? PD:我对 sapui5 相当菜鸟

最后我找到了问题的解决方案,如果您检查问题开头的 XML 代码,您会发现 Form 元素中没有路径。 在我的第一个视图中,我有一个带有 id 的 table 和一个我在表单中没有的路径,所以我解决它的最快方法是在 XML 中放入一个斜杠,例如:

<form:SimpleForm id="formPruebas" maxContainerCols="2" layout="ResponsiveGridLayout" labelSpanL="5" labelSpanM="4" labelSpanS="6" title="Formulario">
                    <Label text="CustomerID"/>
                        <Text text="{/CustomerID}"/> // the slash i mean

有了这个修复,我只做 oForm.setModel(oModel) 所以一切都已连接并正常工作 好的,如果有更多人遇到与我相同的错误,我想分享这些信息。 感谢所有想法。