sapui5

sapui5 - getBindingContext() Devuelve undefined



(2)

getBindingContext(sModelName?)

Obtenga el contexto de enlace de este objeto para el nombre del modelo dado. Si el objeto no tiene un contexto de enlace establecido en sí mismo y no tiene un conjunto de modelos propio, utilizará el primer contexto de enlace definido en su jerarquía principal.

Le has dado nombre al modelo ( this.setModel(oModel, "data") ). Especifique el nombre del modelo ( oItem.getBindingContext(''data'') ) mientras accede al Contexto de enlace .

Estoy trabajando en una SplitApp. Al seleccionar un elemento de la lista, dice

TypeError no capturado: no se puede leer la propiedad ''getPath'' de undefined

Master.controller.js

onSelect: function(oEvent) { this.showDetail(oEvent.getParameter("listItem") || oEvent.getSource()); }, showDetail: function(oItem) { var bReplace = jQuery.device.is.phone ? false : true; this.getRouter().navTo("detail", { from: "master", entity: oItem.getBindingContext().getPath().substr(1), tab: this.sTab }, bReplace); }

oItem.getBindingContext() devuelve undefined . Así que creo que el problema es con el contexto vinculante.

Master.view.xml

<List id="list" select="onSelect" mode="SingleSelect" noDataText="{i18n>masterListNoDataText}" growing="true" growingScrollToLoad="true" items="{data>/results}" > <items id="masterList"> <ObjectListItem id="listItem" press="onSelect" type="{device>/listItemType}" counter="0" title="{data>PROJECTNAME}" number="{data>REVENUE}" numberUnit="{data>CURRENCY}" markFavorite="false" markFlagged="false" showMarkers="true" /> </items> </List>

Component.js

var oModel= new sap.ui.model.json.JSONModel(); oModel.loadData("Data.json"); this.setModel(oModel,"data");

Se muestra la lista, pero cuando selecciono el elemento, se produce el error.


Tratar:

entity: oItem.getBindingContext("data").getPath().substr(1),

Debe pasar el nombre del modelo a ''getBindingContext ()'', si se ha nombrado el modelo vinculado.