I am working on a SplitApp. On selecting an item from the list, it says
Uncaught TypeError: Cannot read property 'getPath' of undefined
onSelect: function(oEvent) {
this.showDetail(oEvent.getParameter("listItem") || oEvent.getSource());
},
showDetail: function(oItem) {
// ...
this.getRouter().navTo("detail", {
from: "master",
entity: oItem.getBindingContext().getPath().substr(1), // Error
tab: this.sTab
}, bReplace);
},
oItem.getBindingContext()
returns undefined
. So I believe the problem is with binding context.
<List id="list" growing="true" items="{data>/results}">
<ObjectListItem id="listItem"
title="{myModel>PROJECTNAME}"
number="{myModel>REVENUE}"
numberUnit="{myModel>CURRENCY}"
press=".onSelect"
/>
</List>
// JSONModel required from "sap/ui/model/json/JSONModel"
var oModel= new JSONModel();
oModel.loadData("Data.json");
this.setModel(oModel,"myModel");
The list is displayed but when I select the item, the error is thrown.
getBindingContext(sModelName?)
Get the binding context of this object for the given model name. If the object does not have a binding context set on itself and has no own Model set, it will use the first binding context defined in its parent hierarchy.
You have given name to the model (this.setModel(oModel, "myModel")
).
Specify the model name (oItem.getBindingContext("myModel")
) to access the binding context.
The same applies to setBindingContext(oContext, "myModel")
.
Try:
oItem.getBindingContext("myModel").getPath().substr(1)
You have to pass the name of the model to getBindingContext
, if the bound model has been named.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With