данные не заполняются от главной страницы до подробной страницы sapui5 - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь заполнить страницу сведений данными первого элемента списка на главной странице, но я получаю пустую страницу сведений. Я работаю над 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);
                }
            });
    }
}
...