我试图用母版页中第一个列表项的数据填充详细信息页面,但是我得到了一个空白的详细信息页面。我正在使用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);
}
});
}
}