Sapui5 获取按下的表行的绑定数据对象-getBindingContext()返回Undefind

Sapui5 获取按下的表行的绑定数据对象-getBindingContext()返回Undefind,sapui5,Sapui5,在SAPUI5中,我尝试获取用户按下时绑定到表行的数据对象(在我的控制器中)。我的视图是用XML定义的,当然我的控制器是用JS定义的 我已经检查过了,但它对我不起作用,或者缺少一些东西 我的看法(有关部分): 这里的相关部分显然是: 在我的控制器中,我有: handleLineItemPress:功能(evt){ log('evt.getSource:'+evt.getSource()); log('evt.getBindingContext:'+evt.getSource().getB

在SAPUI5中,我尝试获取用户按下时绑定到表行的数据对象(在我的控制器中)。我的视图是用XML定义的,当然我的控制器是用JS定义的

我已经检查过了,但它对我不起作用,或者缺少一些东西

我的看法(有关部分):


这里的相关部分显然是:


在我的控制器中,我有:

handleLineItemPress:功能(evt){
log('evt.getSource:'+evt.getSource());
log('evt.getBindingContext:'+evt.getSource().getBindingContext());
}
其日志如下:

items="{
  path: 'statusJobs>/jobs',
  sorter: {
    path: 'start',
    descending: true
  }
}"
evt.getSource:Element sap.m.ColumnListItem#_item11-StatusJobs--lineItemList-0 evt.getBindingContext:未定义

evt.getSource
返回ColumnListItem,因此我可以使用对象层次结构获取单元格的文本,如:

evt.getSource().getCells()[0].getText();
但这似乎不是正确的方法,尤其是没有给出整个对象的唯一ID,我碰巧没有在表中显示它

我不知何故丢失了与我的数据模型的连接,这是我在代码前面的
项中绑定的,如下所示:

items="{
  path: 'statusJobs>/jobs',
  sorter: {
    path: 'start',
    descending: true
  }
}"

我不想说,但我也有同样的问题,我花了很长时间才找到原因

这都与命名模型的使用有关,在您的案例中是
statusJobs

如果要检索绑定到命名属性的项的绑定上下文,出于某种原因(老实说,我想不出任何原因),还必须指定命名模型:

evt.getSource().getBindingContext("statusJobs");
将返回正确的绑定上下文

因此,要检索绑定到按下的行项目的实际对象,可以使用:

var obj = evt.getSource().getBindingContext("statusJobs").getObject();

由于一个上下文不能绑定到多个模型(据我所知),我真的不明白为什么需要特别指定命名模型名作为参数,但现在我想我们必须接受这种行为

如果仍然没有定义,即使指定了正确的模型名,可能会重复什么?