数据未从母版页填充到详细信息页sapui5

时间:2019-01-21 05:29:28

标签: javascript ajax odata sapui5 master-detail

我试图用母版页中第一个列表项的数据填充详细信息页面,但是我得到了一个空白的详细信息页面。我正在使用oData V4并进行ajax调用以绑定母版页中的数据。数据在母版页中而不是详细页中。我在代码中提到了哪个功能不起作用。我的控制器代码:

Controller.js:

sap.ui.define([
    "sap/ui/core/mvc/Controller"
], 
    function (Controller) {
    "use strict";
    return Controller.extend("hmel.TravelandGuestHouse.controller.CreateRequestMaster", {
        onInit: function () {
            this.router = sap.ui.core.UIComponent.getRouterFor(this);
            //model to populate master page
            this.addmodel = new sap.ui.model.json.JSONModel();
            this.getView().setModel(this.addmodel, "Model");

            this.listTemp = this.getView().byId("objTravelId").clone();
            this.getView().byId("travelListId").bindAggregation("items", {
                path: "Model>/value",
                template: this.listTemp
            });

            this.router.attachRoutePatternMatched(this._handleRouteMatched, this);
        },

        _handleRouteMatched: function (evt) {
            if (evt.getParameter("name") !== "CreateRequestMaster") {
                return;
            }

            var that = this;
            $.ajax({
                url: "/Non_sap_create_requests/odata/TravelPrpGetHistory",
                method: "GET",
                headers: {
                    "User": "70000419"
                },
                dataType: "json",
                success: function (data) {
                    that.addmodel.setData(data);

                } 
                error: function (err) {
                }
            });

            that.getView().byId("objStatus");


            //this code is not working. Debugger is not entering in this function
            this.getView().byId("travelListId").getBinding("items").attachDataReceived(function () {
                var list = that.getView().byId("travelListId");
                list.removeSelections();
                var selectedItem = list.getItems()[0];
                //  console.log(selectedItem);
                if (selectedItem) {
                    if (!sap.ui.Device.system.phone) {
                        list.setSelectedItem(selectedItem, true);
                        var data = selectedItem.getBindingContext().getObject();
                        sap.ui.getCore().getModel("detailModel").setData(data);
                        that.router.navTo("CreateRequestDetail", {
                            ID: data.ID
                        });
                    }
                } else {
                    that.router.navTo("NoData");
                    var RedirectLocation = window.location.origin;
                    location.replace(RedirectLocation);
                }
            });
    }
}

0 个答案:

没有答案